Programmazione funzionale

A.A. 2018/2019
Insegnamento per
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
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.

Struttura insegnamento e programma

Linea Milano
Edizione attiva
Responsabile
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
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.
Propedeuticità
nessuna
Prerequisiti e modalità di esame
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
Materiale didattico e bibliografia
M.R. Hansen, H. Rischiel. Functional Programming Using F#. Cambridge University Press, 2013
STUDENTI NON FREQUENTANTI
Programma
stesso dei frequentanti
Prerequisiti e modalità di esame
stesso
Materiale didattico e bibliografia
stesso dei frequentanti
Periodo
Secondo semestre
Periodo
Secondo semestre
Modalità di valutazione
Esame
Giudizio di valutazione
voto verbalizzato in trentesimi
Siti didattici
Docente/i
Ricevimento:
Su appuntamento
Via Celoria, 18 - stanza 4012
Ricevimento:
Venerdì, 16:30 --18
4009, Celoria 18