Programmazione funzionale

A.A. 2018/2019
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Italiano
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
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.
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
Materiale di riferimento
M.R. Hansen, H. Rischiel. Functional Programming Using F#. Cambridge University Press, 2013
STUDENTI NON FREQUENTANTI
Programma
stesso dei frequentanti
Prerequisiti
stesso
Materiale di riferimento
stesso dei frequentanti
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Professor(s)
Ricevimento:
Su appuntamento
vedi https://fiorentini.di.unimi.it/
Ricevimento:
su appuntamento
4009, Celoria 18