l> Site prof TD – email TD : geoffroy(at)irif.fr

Site prof cours

Dans utop:

#install_printer pp;;
(* où pp est un prettyprinter
 * ça permet d'utiliser le prettyprinter automatiquement
 *)

#quit;; (* ça quitte omg! *)

Fichier .ocamlinit permet de lancer des directives automatiquement au lancement de utop.

Redéfinition d’opérateur :

let ( + ) e1 e2 = Add (e1, e2)

Par exemple.


type 'a rel = 'a -> 'a -> bool
(* Relation *)

(* Comme ça maintenant on peut faire ça *)
let equal : t rel = (* code ici*)
;;

(* et ça évite de faire ça *)
let equal : t -> t -> bool = (* code ici *)
;;

Écriture de tests en OCaml (librairie externe) :

let%expect_test

Pour suivre les conseils du compilo après un dune build par exemple
$ dune promote
ça va promouvoir les résultats des tests et remplacer les pré-existants

Pour lancer les tests :
$ dune runtests


L_{s} : Langage sujet/méta (OCaml)
L_{o} : Langage objet (celui que l’on code)


Jalon 2 :
Il y a des dessins similaires dans le cours du parser askip



Arité = Arguments


Pour vérifier qu’une fonction est terminale (tail) il va falloir dire que par défaut, elles le sont et au fur et à mesure lors du parcours du programme les marqués comme faux si on se rend compte que ce n’est pas le cas.
Si j’ai bien compris, c’est pas le cas quand le “return?” appelle une fonction