let rec

再帰関数は,

let rec fact = function
    0 -> 1
  | n -> n * fact (n-1)

とかして書く.

スコープの関係で,letの中のfactの意味が,再帰関数と普通の関数で違ってしまう.また,型付きラムダ計算では,不動点オペレータが定義できない(きちんと型付けできない).ので,型付きラムダ計算のときは,不動点オペレータは明示的に(天下り的に)定義する必要がある.

相互再帰する関数は,let rec ... and ...とかして書く.