it » labels

Eccezioni e tabelle di hash

(da finire)

Funzioni mutuamente ricorsive

Supponiamo di voler definire due funzioni che si chiamino l'una con l'altra. In realtà non è una cosa comune, ma talvolta può essere utile. Ecco un esempio inventato (grazie a Ryan Tarpine): Il numero 0 è pari. Gli altri numeri maggiori di 0 sono pari se il loro predecessore è dispari. Quindi:

let rec even n =
  match n with
    0 -> true
  | x -> odd (x-1)
  ;;

(da finire)