Functional Programming

A.Y. 2018/2019
6
Max ECTS
48
Overall hours
SSD
INF/01
Language
Italian
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
Undefined
Single course

This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.

Course syllabus and organization

Milan

Responsible
Lesson period
Second semester
ATTENDING STUDENTS
Course syllabus
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.
NON-ATTENDING STUDENTS
Course syllabus
same as above
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours
Professor(s)