如果我没看错的话,OCaml 文档(特别是 here)说 fun
可以有“when”保护,例如:
fun a b when a < b -> a + b;;
但是,这会引发“when”的语法错误。是什么赋予了?我读错了吗?
更多信息
相关部分来自documentation以类似 BNF 的语法复制如下:
expr ::= ...
| fun multiple-matching
| ...
multiple-matching ::= { pattern }+ [when expr] -> expr
最佳答案
您发现了文档的错误。 fun
无法防备。
注意:修复已被拉取请求:https://github.com/ocaml/ocaml-manual/pull/2
关于OCaml:在 "fun"守卫时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29788717/