type 'k leaf = {a_bb : 'k -> string;}
我无法理解ocaml中这行代码的含义。有人可以帮忙吗?
答案 0 :(得分:6)
它在类型变量leaf
上声明了一个新类型'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