Programmazione funzionale
A.A. 2018/2019
Learning objectives
Lo scopo di questo corso è fornire agli studenti una solida conoscenza della programmazione funzionale, delle sue applicazioni, e dei suoi punti di forza e di debolezza. Al fine di raggiungere questi obiettivi, il corso sarà basato sul linguaggio di programmazione funzionale F #, un moderno linguaggio funzionale creato da Microsoft Research, e membro della famiglia di linguaggi di programmazione . NET. Intendiamo anche mostrare come il paradigma di programmazione funzionale possa essere efficace da un punto di vista del software engineering - offrendo ottimo supporto per la scrittura di programmi concisi, riutilizzabile e sicuri.
Expected learning outcomes
Non definiti
Periodo: Secondo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.
Course syllabus and organization
Linea Milano
Responsabile
Periodo
Secondo semestre
STUDENTI FREQUENTANTI
Programma
1) Introduction to functional programming (expressions, let declarations, lambda expresions, tuples, pattern matching)
2) Definition of recursive functions
3) Polymorphic types, lists.
4) Tagged values, option types
5) Property based Testing, introduction to FsCheck
7) Representation of trees (binary trees, research trees=
8) Expression trees
9) Higher-order functions, currying
10) Efficiency: tail recursion obtained using accumulator parameters and continuations.
11) Module definition and implementation
12) Lazy evaluation, sequence expressions.
12) More in FsCheck (generators).
13) Type checkers.
2) Definition of recursive functions
3) Polymorphic types, lists.
4) Tagged values, option types
5) Property based Testing, introduction to FsCheck
7) Representation of trees (binary trees, research trees=
8) Expression trees
9) Higher-order functions, currying
10) Efficiency: tail recursion obtained using accumulator parameters and continuations.
11) Module definition and implementation
12) Lazy evaluation, sequence expressions.
12) More in FsCheck (generators).
13) Type checkers.
Propedeuticità
nessuna
Prerequisiti
L'esame è scritto e consiste nella stesura di alcuni semplici programmi in laboratorio. E' possibile un breve progetto per migliorare il voto
Nessun prerequisito stretto, ma si auspica aver superato programmazione ed algoritmi
Nessun prerequisito stretto, ma si auspica aver superato programmazione ed algoritmi
Materiale di riferimento
STUDENTI NON FREQUENTANTI
M.R. Hansen, H. Rischiel. Functional Programming Using F#. Cambridge University Press, 2013
Programma
stesso dei frequentanti
Prerequisiti
stesso
Materiale di riferimento
stesso dei frequentanti
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Professor(s)