OCaml:守卫"有趣"

时间:2015-04-22 05:44:55

标签: ocaml

如果我正确阅读,OCaml文档(here,特别是)表示fun可以拥有"当"警卫,例如:

fun a b when a < b -> a + b;;

然而,这会在&#34;当&#34;时抛出语法错误。是什么赋予了?我读错了吗?

更多信息

下面以类似BNF的语法复制documentation中的相关部分:

expr ::= ...
       | fun multiple-matching
       | ...

multiple-matching ::= { pattern }+ [when expr] -> expr

1 个答案:

答案 0 :(得分:2)

您发现了文档错误。 fun无法接受警卫。

注意:该修补程序已经被拉取请求:https://github.com/ocaml/ocaml-manual/pull/2