这个 ocaml 语法是什么意思?

What does this ocaml syntax mean?

type 'k leaf = {a_bb : 'k -> string;}

我无法理解 ocaml 中这行代码的含义。有人可以帮忙吗?

它声明了一个新类型 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