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()"后返回的值