Errata ([English version])




Page 64:
Le tri par insertion devrait être défini comme:

let sort order xs = list_it (insert order) xs [];;


Page 87, section 3.2.1:
Il manque les règles spécifiant que les constantes et les termes récursifs sont des valeurs. On doit donc ajouter les deux règles suivantes:
      -----------(Const)
|- c => c

   ----------------------(Rec)
|- (Rec f) => (Rec f)
Page 88, section 3.2.2:
Dans la règle(App2), on peut penser que les composants de n-uplets doivent être évalués avant d'être passés en arguments à une fonction. C'est parce que des métavariables v sont utilisées au lieu de métavariables e. La règle (App2) devrait donc être écrite:
|- e1 => (fun (x1, ..., xn) -> e)    |- e2 => (e'1, ..., e'n)   |- e[xi <- e'i ] => v
     ----------------------------------------------------------------------------------(App2)
|- e1 e2 => v
Page 102, exercise 3.1:
La fonction iter1 doit s'écrire:
let rec iter1 n f =
  if n=0 then (fun x -> x) else compose f (iter1 (n-1) f);;


Retour vers la page principale.