OCaml:在 "fun"守卫时

标签 ocaml

如果我没看错的话,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/

相关文章:

nlp - 让menhir找到所有替代方案?

types - F# 中的加法类型 (+)

OCaml 类似于 Python 的 String join 方法

ocaml - 这个 OCaml 代码是如何工作的?

data-structures - 纯函数式数据结构有什么好处?

pattern-matching - 在OCaml中什么时候需要驳回案件?

ocaml - 扩展 ocamllex 以获取更大的词典

ocaml - OCaml 中的静态(编译时)断言?

functional-programming - 惰性求值在这个例子中是如何工作的?

functional-programming - 函数式编程函数混淆