我想做以下事情:
let dist = Stack.pop stck and dir = Stack.pop stck in (
print_endline(dist);
print_endline(dir);
......
......
)
上面给出了以下错误:
Error: This expression has type unit
This is not a function; it cannot be applied.
如何在多行上使用变量dist和dir?
答案 0 :(得分:3)
错误不在此处显示的代码中。我想你忘记了;
某处。
但是代码中存在一个微妙的错误。 在这行代码中
let dist = Stack.pop stck and dir = Stack.pop stck in
您希望在dist
中获取堆栈的第一个元素,在dir
中获取第二个元素,但可能不是the order of evaluation is unspecified。
答案 1 :(得分:2)
您的代码的基本语法是可以的。这是一个简单的例子,表明它工作正常:
$ ocaml
OCaml version 4.01.0
# let x = 5 and y = 4 in (
print_int x;
print_int y;
);;
54- : unit = ()
#
报告的错误与其他问题有关。我们需要更多背景来查看错误。可能错误出现在您排除的行中。或者他们可能是由接下来的事情引起的。