gpt4 book ai didi

ocaml - 为什么在 OCaml 中更喜欢柯里化(Currying)而不是元组参数?

转载 作者:行者123 更新时间:2023-12-04 07:07:04 25 4
gpt4 key购买 nike

"Introduction to Caml"

Note, in Caml it is better to use Curried function definitions for multiple-argument functions, not tuples.



比较时 'a -> 'b -> 'c'a * 'b -> 'c 的调用约定.

使用 SML/NJ 时,我习惯于在输入和输出中使用元组类型: ('a * 'b) -> ('c * 'd)所以使用元组来表达多个输入似乎与我表达多个输出的方式是对称的。

为什么对元组参数的 OCaml 函数声明建议使用柯里化(Currying)?仅仅是允许柯里化(Currying)/部分评估带来的更大灵 active ,还是从 OCaml 编译器的实现细节中获得的其他好处?

最佳答案

是的,主要是符号的方便和部分应用的灵 active 。 Curried 函数在 OCaml 中是惯用的,编译器可能会比元组函数更好地优化它们(而 SML 编译器通常针对元组进行优化)。

元组的优点是您提到的参数/结果对称性(在组合函数时特别有用),也许还有符号熟悉度(至少对于来自非函数世界的人来说)。

关于ocaml - 为什么在 OCaml 中更喜欢柯里化(Currying)而不是元组参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10666913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com