Ocaml 代码中有错误:";这是一个无法应用的函数”;

Ocaml 代码中有错误:";这是一个无法应用的函数”;,ocaml,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) 让nDivM n=n/m 设rec decimalToM m n=如果(n

我是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)
让nDivM n=n/m
设rec decimalToM m n=如果(n

上面是一个基极转换器(M是基极)。我需要一个int,但现在它没有运行。

问题似乎出现在这个子表达式中:

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

由于
nDivM
是一个函数,因此不能仅通过移动括号来完全修复此问题。在我看来,您需要为
nDivM
提供一些参数。那么你应该确保你的括号是正确的


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

Hi@Alex,欢迎使用堆栈溢出!请你再补充一点细节,你已经弄明白了什么,这样当人们帮助你时就可以节省时间?我得到的是“这不是一个函数,它不能应用。”这比问题中的错误更有意义。