我有一个函数numofday,我想在另一个函数中应用两个变量,它们将返回两个给定日期之间的天数,函数本身并不重要,我想这更多一个句法问题,但谷歌没有产生太多。
我想做的事情就像(这是我尝试过的,显然不起作用)
let daysbetween day1 day2 =
let x = numofday day1;
let y = numofday day2;
x-y;;
我尝试删除let,删除分号,并使用:=而不是=而我似乎无法让它工作。必须有一种方法来定义函数中的变量。提前谢谢。
答案 0 :(得分:3)
ocaml的let绑定的正确语法是let name=bindng in expr
这是您的固定代码
let daysbetween day1 day2 =
let x = numofday day1 in
let y = numofday day2 in
x-y;;
您的特定示例甚至可以通过绑定元组来一次分配两个值:
let daysbetween day1 day2 =
let (x,y) = (numofday day1, numofday day2) in
x - y
答案 1 :(得分:2)
以rgrinberg的答案为基础:
OCaml中的单个分号与Java或C中的单个分号非常不同。
在您的情况下,您似乎将分号的功能解释为语句的结束标记 但是,分号用作表达式的分隔符。并且OCaml期望分号前的值为unit,()类型,副作用函数通常会返回。
表达式:
();();();.....();x;;
具有x的值。
如何使用呢?
let x = 1;;
let y =
print_string("assigning x to y\n");
x;;