Functional Programming
A.Y. 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
Undefined
Lesson period: Second semester
Assessment methods: Esame
Assessment result: voto verbalizzato in trentesimi
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
NON-ATTENDING STUDENTS
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.
Course syllabus
same as above
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours
Professors:
Fiorentini Camillo, Momigliano Alberto Davide Adolfo
Professor(s)