Scala 中的柯里化函数
Currying Functions in Scala
我是 Scala 的新手,我刚刚开始学习它,现在正在尝试一些练习。尤其是这个我看不懂。
我只了解 (f: (A, B) => C)
部分,但其余部分我不太了解。有人可以解释一下匿名函数部分之后发生了什么吗?
谢谢!
这是函数:
def curry[A, B, C](f: (A, B) => C): A => (B => C) = a => b => f(a, b)
def curry
一个名为 "curry" 的方法
[A, B, C]
将处理 3 种不同的类型
(f
它将接收一个参数,我们将其命名为 "f"
: (A, B) => C)
参数类型为 "function that takes A,B and returns C"
: A => (B => C)
"curry" returns 输入 "function that takes A and returns function that takes B and returns C"
=
这是 "curry" 代码
a => b => f(a, b)
接受一个参数的函数(我们称之为 "a")和 returns 一个接受参数的函数(我们称之为 "b") returns将"a"和"b"传给"f()"后返回的值
我是 Scala 的新手,我刚刚开始学习它,现在正在尝试一些练习。尤其是这个我看不懂。
我只了解 (f: (A, B) => C)
部分,但其余部分我不太了解。有人可以解释一下匿名函数部分之后发生了什么吗?
谢谢!
这是函数:
def curry[A, B, C](f: (A, B) => C): A => (B => C) = a => b => f(a, b)
def curry
一个名为 "curry" 的方法
[A, B, C]
将处理 3 种不同的类型(f
它将接收一个参数,我们将其命名为 "f": (A, B) => C)
参数类型为 "function that takes A,B and returns C": A => (B => C)
"curry" returns 输入 "function that takes A and returns function that takes B and returns C"=
这是 "curry" 代码a => b => f(a, b)
接受一个参数的函数(我们称之为 "a")和 returns 一个接受参数的函数(我们称之为 "b") returns将"a"和"b"传给"f()"后返回的值