代码错误:“此功能无法应用”

时间:2019-10-15 00:38:09

标签: ocaml

我是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,但现在无法运行。

1 个答案:

答案 0 :(得分:1)

问题似乎出在此子表达式中:

decimalToM(m nDivM)

子表达式(m nDivM)在语法上是对m作为函数的调用,传递了nDivM作为参数。

由于nDivM是一个函数,您不能仅通过移动括号来完全解决此问题。在我看来,您需要为nDivM提供一些参数。然后,请确保括号正确。

如果f是两个参数的函数,则在OCaml中调用它的方式是:f x y。请注意,不需要括号(除非xy是更复杂的表达式)。