Option Traduction de Programmes Option Traduction de Programmes
TD Lundi 6 mai
Langages fonctionnels

  1. Appliquer l'algorithme de détermination des types afin de décider le type des fonctions suivantes:


    1. f 0 = [ ]; f n  =  (n: f (n-1))

    2. inv [ ] y = y; inv (h:t) y = inv t (h:y)

    3. g [ ] [ ] = [ ]; g (h1:t1) (h2:t2) = (h1  h2:g t1 t2)

    4. p a [ ] = [a]; p a (b:c) = conc (p a c) (p (b:a) c)

         where   conc [ ] y = y;  conc (hx:tx) y = (hx:conc tx y)

    5. f f = [ ]
  2. Evaluation paresseuse et structures infinies:
    Définir un type Miranda capable de représenter un graphe fini ou infini et écrire une expression qui ``s'évalue'' à un graphe infini dont les sommets sont les entiers supérieurs à 1 et deux sommets sont reliés par une arête ssi l'un des deux entiers est multiple de l'autre.
    Définir une fonction qui renvoie un chemin entre deux sommets d'un graphe (s'il y en a).



File translated from TEX by TTH, version 3.05.
On 7 May 2002, 12:20.