Programmation fonctionnelle Les 3 points-clés de la programmation fonctionnelle: Fonction d'ordre supérieur (fonctions comme valeurs) map :: (a -> b) -> [a] -> [b] double x = x * 2 map double [1,2,3,4] ->[2,4,6,8] Haskell Curryfication (les fonctions en Haskell prennent un seul argument) add x y = x + y a = add 5 a4 -> 9 Fonction anonyme (fonction sans nom) (\x -> x + 1) 5 -> 6 map (\x- > x + 1 ) [1,2,3,4] ->[2,3,4,5] C'est purement fonctionnel* Les principales caractéristiques de Haskell: concis paresseux robuste correct Haskell C++ Quick Sort *It is also possible to write imperative programs in Haskell! Easy, even. Now that you know you can, don’t. et Preuves Une preuve est un fait ou un raisonnement propre à établir solidement la vérité. -wikipédia Règles on utilise pour faire des preuves: ts |- A => B Axiome th Introduction ts |- A => B ts |- A Elimination ts |- B me ce è r rt éo ifié ts, A |- B ts |- A => B certifié conforme au spécifications par génération automatique du code Haskell Coq Une preuve mathématique Haskell "How do you know it works, did you test it??" -"No, I proved it." Encadrant: Etudiants: M. Thiry Laurent Elkira Anass Gupta Umang 2A IR 2013-14