我是Ocaml的新手。我不确定为什么以下方法不起作用:
let nDivM m n = n/m
let rec decimalToM m n = if (n < m) then n+n
else ((n mod m) * n) + decimalToM(m nDivM)
以上内容是指基本转换器(M是基本转换器)。我期望有一个int,但现在无法运行。
答案 0 :(得分:1)
问题似乎出在此子表达式中:
decimalToM(m nDivM)
子表达式(m nDivM)
在语法上是对m
作为函数的调用,传递了nDivM
作为参数。
由于nDivM
是一个函数,您不能仅通过移动括号来完全解决此问题。在我看来,您需要为nDivM
提供一些参数。然后,请确保括号正确。
如果f
是两个参数的函数,则在OCaml中调用它的方式是:f x y
。请注意,不需要括号(除非x
或y
是更复杂的表达式)。