具有可变参数数量的 OCaml 函数

2024-04-11

我正在探索 OCaml 函数的“高级”用法,我想知道如何编写具有可变数量参数的函数。

例如,像这样的函数:

let sum x1,x2,x3,.....,xn = x1+x2,+x3....+xn

通过一些类型黑客,当然:

let sum f = f 0
let arg x acc g = g (acc + x)
let z a = a

以及(ab)用法:

# sum z;;
- : int = 0
# sum (arg 1) z;;
- : int = 1
# sum (arg 1) (arg 2) (arg 3) z;;
- : int = 6

整洁吧?但不要使用这个 - 这是一个 hack。

有关解释,请参阅这一页 http://mlton.org/Fold(就SML而言,但思想是一样的)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有可变参数数量的 OCaml 函数 的相关文章

随机推荐