Descriptif
Ce cours donne une introduction théorique et pratique à la programmation fonctionnelle dans des langages modernes fortement typés. Nous étudierons en profondeur les notions de types algébriques, de fonctions d'ordre supérieur, de polymorphisme et d'effets de bord. Des projets sont réalisées en Haskell, mais les concepts présentés dans le cours sont applicables dans de nombreux autres langages, notamment OCaml et Python.
Objectifs pédagogiques
Acquérir une compréhension des fondements théoriques des langages de programmation fonctionnelle typés et développer des compétences en programmation dans ces langages, en particulier Haskell.
Diplôme(s) concerné(s)
Parcours de rattachement
Pour les étudiants du diplôme Programmes d'échange internationaux
CSC_2F003_EP (CSE201) et CSC_2F003_EP (CSE203)
Pour les étudiants du diplôme Bachelor of Science de l'Ecole polytechnique
Vous devez avoir validé l'équation suivante : UE CSC_2F001_EP Et UE CSC_2F003_EP
CSC_2F003_EP (CSE201) et CSC_2F003_EP (CSE203)
Format des notes
Numérique sur 20Littérale/grade américainPour les étudiants du diplôme Bachelor of Science de l'Ecole polytechnique
Vos modalités d'acquisition :
tutoriels de programmation, examen final, projet final
Le rattrapage est autorisé (Note de rattrapage conservée écrêtée à une note seuil de 10)- Crédits ECTS acquis : 3 ECTS
La note obtenue rentre dans le calcul de votre GPA.
Pour les étudiants du diplôme Programmes d'échange internationaux
Vos modalités d'acquisition :
tutoriels de programmation, examen final, projet final
Programme détaillé
1. types algébriques
2. fonctions d'ordre supérieur et classes de types
3. lambda calcul et correspondance formule/type
4. Effets de bord et monades
5. Évaluation paresseuse et objets infinis
6. Dérivées de types et zippers