Formation programmation fonctionnelle
Yann « Yago » Hamdaoui - VIA - IRIF
6 avril 2016
1 La programmation fonctionnelle ?
1.1 Qu’est-ce que la programmation fonctionnelle ?
Une classe de langages où les fonctions sont des « first class citizens » (higher order functions)
Une classe de langages basés sur le λ-calcul
Exemples de langages fonctionnels : Lisp, OCaml, Haskell
1.2 Qu’est ce qu’un calcul ?
Calcul : des grandeurs et des opérations sur ces grandeurs
Machine de Turing ; Modèle Turing-complet ; Notion de calculabilité
Ensembles classiques de systèmes Turing-complets : la plupart des langages de programmation, les fonctions
récursives, jeux de la vie, Minecraft, configuration Sendmail. . .
Architecture de Von Neumann
1.3 L’avènement du λ
Soit ν={x, y, . . .}un ensemble de variables, on définit M, N := x|λx, M|MN
Notion d’application partielle
Notion de β-réduction
Le λ-calcul est Turing-complet.
2 Les systèmes de types
« Well-typed programs do not go wrong. » Robin Milner
Système de type simple
Type, types algébriques (type-produit, type-somme)
3 ML
3.1 Un petit fix
Récursivité, point fixe
Polymorphisme : on remplace les types sur lesquels on n’a pas de contrainte par des α
Types récursifs : listes, arbres. . .
3.2 Les systèmes de types
On a recours à l’inférence de types. Il existe plusieurs systèmes :
Types simples : décidable mais pas de type principal
ML : décidable et type principal
OCaml : décidable mais plus de type principal
System F : indécidable et pas de type principal
1
1 / 1 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !