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, such as lambda expressions, 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, applicative and monads and let the student 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, recursion and the associated complexity issues. Type systems that allow the manipulation of functions and partial functions (the notion of Currying), recursion in the context of types, infinite data types, associated data structures and their manipulation are also covered. Functors, applicative, monads and IO monads are also part of the program. All these topics are developed with programming exercises in Haskell.