ECTS : 4
Volume horaire : 58.5
Description du contenu de l'enseignement :
The goal of this course is to familiarize students with the principles of functional programming using the Haskell language. Functional programming is a modern programming paradigm that allows the rapid and reliable design of complex applications. Functional programming concepts are currently prevalent in most modern programming languages, such as Java, C++, JavaScript, etc. The goal of this course is to help students master them using a purely functional language (Haskell). In addition, the course covers the Haskell type system, functors, applicatives and monads and let the students practice these notions with the Glasgow Haskell Compiler.
Compétence à acquérir :
This class covers the main principles of functional programming, like high-order functions, partial application and anonymous functions. Type systems that allow the manipulation of functions (the notion of Currying), recursion in the context of types, infinite data types, associated data structures and their manipulation are also covered. Functors, applicatives, monads and IO monads are also part of the program. All these topics are developed with programming exercises in Haskell.
Bibliographie, lectures recommandées :
https://learnyouahaskell.com/chapters