TD de programmation fonctionnelle et logique TD 8 : premiers programmes Prolog
1. ´Ecrire un pr´edicat«hypot´enuse»qui prend trois argumentsX,Y etZet qui est vrai siZ2=X2+Y2(l’´egalit´e entre expressions arithm´etiques se note«= :=»).
2. ´Ecrire un pr´edicat qui prend en entr´ee un ´el´ement et une liste et qui est vrai si l’´el´ement appartient `a la liste.
3. ´Ecrire un pr´edicat qui est vrai si son argument est un chiffre.
4. R´e´ecrire le pr´edicat«hypot´enuse»pour qu’il puisse ´enum´erer tous les triplets(X, Y, Z)de chiffres satisfaisants la relationX2+Y2=Z2.
5. ´Ecrire un pr´edicat qui est vrai si tous les ´el´ements d’une liste sont des chiffres.
6. ´Ecrire un pr´edicat prenant un ´el´ement et une liste en argument, et qui est vrai si et seulement si l’´el´ement n’appartient pas `a la liste (le symbole diff´erent est«=\=»).
7. ´Ecrire un pr´edicat qui est vrai si tous les ´el´ements d’une liste sont (deux `a deux) diff´erents.
8. R´esoudre le probl`eme : S E N D + M O R E ---
M O N E Y
o`uS,E,N,D,M,O,RetYsont des chiffres deux `a deux distincts.
9. ´Ecrire un pr´edicat qui prend en entr´ee un ´el´ement et deux listes et qui est vrai si la deuxi`eme liste peut ˆetre obtenue par une quelconque insertion de l’´el´ement dans la premi`ere liste.
10. ´Ecrire un pr´edicat qui prend en entr´ee deux listes et qui est vrai si une liste est permutation des ´el´ements de l’autre liste.
11. ´Ecrire une nouvelle solution du probl`eme S E N D
+ M O R E ---
M O N E Y
avec le pr´edicat sur les permutations.
1