所以我在OCaml中调试时遇到问题。问题是我写的代码非常简单,但我一直遇到一个容易修复的问题 - 我只是不知道怎么做!
let rec multiplier (int1: int) (int2: int) (int3: int) : int =
let product : int
if int1 >= int2 then(
if int1 >= int3 then product = int1 * int2
else product = int1 * int3
)
else if int2 >= int1 then(
if int1 >= int3 then product = int2 * int1
else product = int2 * int3
)
我不断得到一个红色的' x'并且在第一个"下面有一条squigley线;如果"错误:"意外的令牌:如果"
谢谢!
答案 0 :(得分:2)
不要认为=
是一项任务; Ocaml基本上没有任何作业(除了:=
用于参考)。
写点像
let area : int =
if side1 >= side2 then (
if side2 >= side3 then side1 * side3
else side1 * side3
)
else if side2 >= side1 then (
if side1 >= side3 then side2 * side1
else side2 * side3
)
else 0
请记住,if
... then
.... else
....构造是一个表达式;它更像是C的三元?:
条件运算符,而不像它的if
语句。
请记住,Ocaml没有语句,只有表达式。 (其;
运算符(例如a;b
)类似于C逗号运算符a,b
,意思是计算a
,丢弃结果,计算b
给出整体结果表达)