Principes de Programmation
TD1
25 janvier 2017
Exercice 1 (Typage et Fonctionnel).
Voici les λ-expressions d’opérateurs existants dans haskell :
flip xyz =xzy
id =\x-> x
(||)xy =if xthen xelse y
(&&)False _=False
(&&)True x=x
($)=\x-> \y-> x y
(.)=\f-> \g-> \x-> f(g x)
1. Que font ces opérateurs ?
2. Quels sont leurs types ?
3. Quels sont les types des fonctions suivantes :
owl =(.)$(.)
jackpot =($).($)
dots =(.).(.)
swing =flip .(.flip id)
bigmap =map ($3)
wtf =map $($)3
4. Que font-elles ?
5. Que fait l’opérateur (!!) défini dans haskell par :
(!!):: [a] -> Int -> a
(x:_)!! 0 =x
(_:l) !! n=l!! (n-1)
[] !! _=undefined
1
Exercice 2 (Paresse et Listes).
Que font les programmes suivants :
un :: Int
un =un
deux :: Int
deux =(\_-> 2) un
trois :: Int
trois =[un, 2,3]!! 2
quatre :: Int
quatre =[2..]!! 2
cinq :: Int
cinq =[2..]!! (-1)
six :: Int
six =map (*2) [2..]!! 1
sept :: Int
sept =[2..7]!! 6
2
1 / 2 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 !