let safeInput:Map<'a,'b> option -> 'a -> 'b -> Map<'a,'b> option = fun x y z ->
match x with
| Some d -> Some(d.Add(y,z))
| None -> Some([y,z]|>Map.ofList)
我理解如何将简单的高阶函数声明为类型...如果' - &gt;'从右到左阅读不止一次地用来破译它返回的东西......即一个更高阶的函数。
对于上面的一本书的例子...我明白这是在添加到地图上,我对如何破译顶线有点朦胧?并使用'fun'关键字?
答案 0 :(得分:4)
因此,第一行指出safeInput
是一个函数,它会Map option
一个key
一个value
,然后返回map option
。 fun
关键字只是创建函数的一种方式。
等效函数是
let safeInput (x:Map<'a,'b> option) (y:'a) (z:'b) :Map<'a,'b> option =
match x with
| Some d -> Some(d.Add(y,z))
| None -> Some([y,z]|>Map.ofList)