我必须创建一个函数来显示一组字符串中的每个元素。我做了以下事情:
module S = Set.Make(String);;
module P = Pervasives;;
let write x = (
P.print_string("{"); let first = true;
S.iter (fun str -> (if first then () else P.print_string(","); P.print_string(str))) x;
P.print_string("}");
P.print_newline
);;
^
在程序结束时(我放置该符号的位置)似乎出现错误:语法错误:运算符(operator)预期。
请帮我解决这个问题。
最佳答案
我相信你的语法问题是 let
.除了顶层代码(模块的最外层),let
必须跟in
.
这段代码还有很多其他问题,但也许这会让你找到下一个问题:-)
几点注意事项:
OCaml 中的变量是不可变的。所以你的变量名为 first
永远都是真的。你不能改变它。这个(看似次要的)点是函数式编程的关键之一。
您无需引用 Pervasives
模块名称。这就是为什么它被称为“无处不在”。你可以说print_string
通过它自己。
您最后一次调用 print_newline
不是电话。这个表达式只计算函数本身。 (如果你想调用这个函数,你需要给它一个参数。)
关于function - 函数中的 OCaml 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19620952/