And*_*rew 4 syntax ocaml function syntax-error
我必须创建一个函数,它将显示一组字符串中的每个元素.我做了以下事情:
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
);;
^
Run Code Online (Sandbox Code Playgroud)
在程序结束时(我放置了那个标志),看起来我有一个错误:语法错误:操作员期望.请帮我解决这个问题.
我相信你的句法问题就在于此let.除了顶级代码(模块的最外层)之外,let必须遵循in.
这段代码还有很多其他问题,但也许这会让你找到下一个问题:-)
几点说明:
OCaml中的变量是不可变的.因此,您的变量名称first将始终为true.你无法改变它.这个(看似很小的)点是函数式编程的关键之一.
您无需Pervasives按名称引用模块.这就是为什么它被称为"无处不在".你可以print_string自己说.
你最后一次打电话print_newline不是电话.该表达式仅计算函数本身.(如果要调用该函数,则需要给它一个参数.)