type 'k leaf = {a_bb : 'k -> string;}
我无法理解ocaml中的这一行代码的含义。有人可以帮忙吗?
它声明的新型leaf
parametrised了一个类型变量'k
这是一个记录类型有一个字段a_bb
类型的'k -> string
地方'k
就是我们前面提到的参数。
类型值的示例为'k leaf
:
{ a_bb = fun _ -> "Hello World!" }
但'k
也可以专门用于具体类型,例如
{ a_bb = fun b -> if b then "Hello World!" else "Argh!" }
之所以具有类型,bool leaf
是因为该字段中函数的参数a_bb
必须是布尔值,表达式if b then (...)
才能有意义。
您可以a_bb
通过使用如下所示的投影来在字段中访问该函数:
fun v -> v.a_bb
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句