Scala中的Curry函数

时间:2019-07-18 07:23:24

标签: scala currying

我是Scala的新手,我刚刚开始学习它,现在尝试一些练习。尤其是这个我很难理解。

我最了解(f: (A, B) => C)部分,但其余部分我不太明白。有人可以解释匿名功能部分之后发生了什么吗?

谢谢!

这是功能:

def curry[A, B, C](f: (A, B) => C): A => (B => C) = a => b => f(a, b)

1 个答案:

答案 0 :(得分:6)

  • def curry一种名为“ curry”的方法
  • [A, B, C]将处理3种不同的类型
  • (f,它将收到一个我们称为“ f”的参数
  • : (A, B) => C),该参数的类型为“接受A,B并返回C的函数”
  • : A => (B => C)“ curry”返回类型“接受A并返回B并返回C的函数”
  • =这是“ curry”代码
  • a => b => f(a, b)函数,该函数接受一个参数(我们称为“ a”)并返回一个函数,接受一个参数(我们称为“ b”),该函数返回在“ a”和“ b”传递给“ f()”