14

PHP では、引数のデフォルト値を次のように設定できます。

function odp(ftw = "OMG!!") {
   //...
}

OCaml に同様の機能はありますか?

4

1 に答える 1

34

OCaml にはオプションの位置パラメーターがありません。なぜなら、OCaml はカリー化をサポートしているため、いくつかの引数を省略すると、部分的なアプリケーションのように見えるからです。ただし、名前付きパラメーターの場合は、オプションの名前付きパラメーターがあります。

通常の名前付きパラメーターは次のように宣言されます。

let foo ~arg1 = arg1 + 5;;

オプションの名前付きパラメーターは、次のように宣言されます。

let odp ?(ftw = "OMG!!") () = print_endline ftw;;

(* and can be used like this *)
odp ~ftw:"hi mom" ();;
odp ();;

オプションの名前付きパラメーターの後には、オプションではないパラメーターが少なくとも 1 つ続く必要があることに注意してください。

于 2009-09-15T03:49:02.830 に答える