OCaml 求和

标签 ocaml

我正在尝试在 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/

相关文章:

arrays - OCaml - int 数组和垃圾回收

regex - 检查字符串是否以 OCaml 中的某些文本结尾的最方便方法?

types - OCaml - 创建自定义类型的自定义类型

ocaml - 包含 CJK 字符的字符串长度

ocaml - 模块依赖循环

ocaml - OCaml 类型定义周围的 '<' 和 '>' 的含义是什么?

python - OCaml 相当于 Python 生成器

ocaml - 使用 Ocsigen 提供 JSON 的规范方法是什么?

facebook - ocsigen服务器 : main: Reference to undefined global `Https_client'

ocaml - 在同一记录的其他字段中使用记录字段