TL;DR
- 関数に関数の型を注釈し、
funで実装すると、引数と戻り値の型がすべてその型から決まる。
内容
F# で、ある関数が特定の関数の型を実装していることを明確にしたいときは、次のように書く。
type MyFunctionSignature = Param1 -> Param2 -> Result
let myFunc: MyFunctionSignature =
fun param1 param2 ->
// ...こう書くと、すべての引数と戻り値の型が関数の型によって決まる。Domain Modeling Made Functional 第9章 最初のステップの実装の validateOrder も、この書き方で ValidateOrder 型を実装している。