我最近开始使用Scala中的功能编程,并且正在学习Scala。在尝试第2章练习之一来定义一个可以解释另一个函数的函数时,我遇到了这个:
如果我写
def curry[A,B,C](f: (A,B) => C): A => B => C =
a: A => b: B => f(a, b)
然后我得到
Chapter2.scala:49:错误:&#39 ;;'预期,但':'找到。
a:A => b:B => f(a,b)
_______ ^
找到一个错误
但如果我写
def curry[A,B,C](f: (A,B) => C): A => B => C =
a => b => f(a, b)
然后编译好,没有任何警告,并且工作。有什么区别?
答案 0 :(得分:4)
您只需将变量括在括号中即可。在你的例子中, 你可以写:
def curry[A,B,C](f: (A,B) => C): A => B => C =
(a: A) => (b: B) => f(a, b)