FUNCTIONAL LANGUAGES 2022-2023 prof. Alvise Spanò
Indice degli argomenti
-
This is the moodle page of the Functional Language course 2022-2023.
The course aims at learning the basics of functional programming in F# and Haskell as well as the core theory behind ML as the modern father of all functional languages. Software development in functional languages will be covered as well, learning hybrid functional-imperative programming.
- Introduction to lambda calculus and the Hindley-Milner type system: the core of ML
- Programming in F#: a real-world ML for .NET.
- Programming in Haskell: beyond the ML type system and programming with type classes.
- Advanced software design in a functional language: disjoint-unions and records vs objects; parametric polymorphism vs subtyping.
- Functional bits in modern imperative languages: lambdas and closures in Java, C++, Python and others.
Reception
Students can contact me any time by mail at alvise.spano@unipd.it or spano.alvise@gmail.com and we can arrange a Zoom meeting.
-
In this section we put all the relevant material for studying Functional Languages.
More material and information will become available in the upcoming weeks.Books
The course will not strictly follow any book, though we suggest 3 of them:
- M. R. Hansen, Functional Programming in F#, Cambridge University Press (2013)
ISBN: 9781139093996 - G. Hutton, Programming in Haskell, Cambridge University Press (2016)
ISBN: 1316626229 - B. Pierce, Types and Programming Languages, MIT Press (2002)
ISBN: 0262162091
Suggested chapters: 3-7 for Untyped Lambda Calculus; 8-10 for Typed Lambda Calculus.
GitHub
We provide all the material produced during classes on a GitHub repository that will be created starting from the first lesson.
At the moment the available material belongs to the repository of the past year: https://github.com/alvisespano/FunctionalLanguages-UniPD
Here you will find code written in class and other information and material to study on.-
Syntax, type system and operational semantics of an ML-like functional calculus.
- M. R. Hansen, Functional Programming in F#, Cambridge University Press (2013)
-
We provide the full videos of the course lessons as extra material for study. Lesson 1 held on October 3rd 2022 has not been recorded, being an introductory lesson.