Programmation Fonctionnelle Avanc´ee – Master 1
TP 1
Mehdi Dogguy
– Tous les sujets de TP seront disponibles `a cette adresse :
http://www.pps.jussieu.fr/~dogguy/?page=teaching/pfa
– Les lignes commen¸cant par (?) sont des indications.
Exercice 1 : Configuration d’Emacs
Emacs dispose d’un mode Haskell qui porte le nom haskell-mode. Il faut
dire `a Emacs comment charger correctement le mode en vous aidant du code qui
se trouve `a l’adresse suivante :
http://is.gd/haskell el
Ajoutez le contenu de ce fichier `a la fin de votre .emacs (et rechargez ce
dernier). Ce mode fournit quelques fonctions utiles que l’on va d´ecouvrir tout
au long de ce TP.
(?) Le raccourci clavier C-c C-h permet de d´ecouvrir la liste des raccourcis
clavier d´efinis par le mode charg´e.
Exercice 2 : Listes
´
Ecrivez les fonctions suivantes sur les listes et donnez leur ´equivalent dans
le pr´elude de Haskell :
–appliquer :: (c -> d) -> [c] -> [d] qui prend en argument une
fonction fet une liste let qui retourne la liste o`u tous les ´el´ements ont
´et´e tranform´es avec f.
–concatener :: [z] -> [z] -> [z] qui concat`ene deux listes.
–longueur :: [a] -> Int qui calcule la longueur d’une liste.
–somme :: [Int] -> Int qui calcule la somme des ´el´ements d’une liste.
Proposez une impl´ementation de somme qui utilise foldl.
–combiner :: (a -> b -> c) -> [a] -> [b] -> [c] qui combine les
´el´ements de deux listes avec la fonction donn´ee en premier argument.
(?) La documentation de Prelude.hs est disponible `a cette adresse
http://is.gd/Prelude hs.
(?) Le raccourci clavier C-c C-l permet de charger le fichier ouvert dans le
mode interactif de Haskell.