ECTS
5 credits
Component
Faculty of Science
Description
This course introduces the functional programming paradigm. First, we'll talk about lambda-calculus, the computational model on which functional languages are based. We then move on to teach a real functional programming language, namely OCaml.
The presentation of OCaml will mainly follow the following outline:
1. Basic types, definitions.
2. Function declarations.
3. Basic data structures (tuples, lists).
4. Advanced data structures (sum types, records).
5. Exceptions.
6. Higher-order functions, iterators on lists.
Time permitting, we'll also take a look at OCaml's module system, one of whose main motivations is to group together related definitions, but which also introduces reusability through the system of parameterized modules (functors).
Objectives
The aim of this course is to take a look at a functional programming language. In addition to the language itself, we will also look at certain properties of programming languages, such as the distinction between syntax and semantics, the importance of giving the language a formal semantics, and the need for a strong type (i.e. semantically correct). This course will serve as a basis for other UEs, which may be required to use functional languages in a privileged way, such as the UEs of propositional logic, first-order logic or verification.