Programmation fonctionnelle

publicité
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
Téléchargement