デフォルト引数/名前付き引数

まずは、名前付き引数から。

(* 定義 *)
let f ~x ~y ~z = x+y+z;;

(* 呼び出し *)
f ~x:1 ~z:3 ~y:2;;

次はデフォルト引数。

(* 定義 *)
let f ?(x=0) y = x+y;;

(* 呼び出し *)
f 2;;
f ~x:1 2;;

文法上、デフォルト引数は通常の引数より前でないと使えない。 C++とかだと後半しか使えないのとは対照的やね。