我正在尝试在 OCaml 中创建一个函数,该函数在数学中执行求和函数。
我试过这个:
sum n m f =
if n = 0 then 0
else if n > m then f
else f + sum (n + 1) m f;;
但是,我收到一个错误 - “字符 41-44: else f * sum(n + 1) m f;; 错误:未绑定(bind)值总和
和 sum 加下划线(有胡萝卜符号指向它)
我看了这个:Simple OCaml exercise
这是同一个问题,但我看到了很多其他我没有的东西。
例如,对于我的 n = m 情况,我没有 f n,然后在 else 情况下,我没有 f m。
如果您希望函数返回整数,为什么需要 f n ?丁:
有什么问题!?提前致谢。
最佳答案
你忘了rec
.let rec sum n m f = ...
对于递归函数,您必须手动包含“rec”关键字。
关于OCaml 求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10988442/