gpt4 book ai didi

functional-programming - ML 函数柯里化(Currying)

转载 作者:行者123 更新时间:2023-12-04 08:41:32 24 4
gpt4 key购买 nike

有人可以向我解释柯里化(Currying)的概念吗?我主要学习它是因为我们正在我的“现代编程语言”类(class)中学习 ML,以介绍函数式语言。

特别是你可以使用这个例子:

    -fun g a = fn b => a+b;
val g = fn: int -> int -> int
-g 2 3;
val it = 5 : int

我很困惑这些参数是如何传递的,或者一开始是如何考虑的。

感谢您的帮助。

最佳答案

在这种情况下,您将柯里化(Currying)明确化,因此应该更容易理解。

如果我们阅读函数定义,它说(释义):“创建一个函数 g,当给定一个 a 时返回 fn b => a +b。”

也就是说,如果我们调用g 2,我们会得到函数fn b => 2+b。因此,当我们调用 g 2 3 时,我们实际上调用了 (g 2) 3;也就是说,我们首先返回上述函数,然后在值 3 上使用此函数,产生 5

柯里化(Currying)只是在几个“阶段”创建一个函数的概念,每个阶段接受一个输入并产生一个新函数。 SML 对此有语法糖,使 g 等同于以下内容:

fun g a b = a + b;

关于functional-programming - ML 函数柯里化(Currying),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12906348/

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