问题描述
我为一个函数编写了一个简单的代码,该函数接受一个字符串并返回其长度:
let fun x = String.length x;;
但是它显示语法错误。为什么?
如果我只写String.length x;;
很好,但是我的函数声明有什么问题呢?
如何将字符串变量作为参数传递给OCaml中的函数?
解决方法
fun
是OCaml中的保留关键字。您可以选择不是关键字的其他名称,该功能将起作用。以下是OCaml中保留关键字的列表:https://caml.inria.fr/pub/docs/manual-ocaml/manual071.html
您在这里混合使用不同的语法:
- 让
* = - 趣味
*->
“ let”后必须跟要创建的函数的名称,“ fun”作为保留关键字,不是该函数的有效名称。这是一个关键字,而不是一个标识符,因此语法分析器会给您一个错误。