Scala 现有答案的curry函数无效
我尝试运行以下代码:Scala 现有答案的curry函数无效,scala,Scala,我尝试运行以下代码: val f: (a: Int) => (b: Int) => (c: Int) = a + b + c 在REPL和IntellijIDEA中发现,但它显然无效 从REP: scala> val f: (a: Int) => (b: Int) => (c: Int) = a + b + c <console>:1: error: ')' expected but ':' found. val f: (a: Int)
val f: (a: Int) => (b: Int) => (c: Int) = a + b + c
在REPL和IntellijIDEA中发现,但它显然无效
从REP:
scala> val f: (a: Int) => (b: Int) => (c: Int) = a + b + c
<console>:1: error: ')' expected but ':' found.
val f: (a: Int) => (b: Int) => (c: Int) = a + b + c
^
scala>valf:(a:Int)=>(b:Int)=>(c:Int)=a+b+c
:1:错误:')应为“”,但找到“:”。
值f:(a:Int)=>(b:Int)=>(c:Int)=a+b+c
^
有人知道为什么吗?我的scala版本是2.10.1
谢谢你你写的字就像在写:
val a: 5 = 5
你想要的更像
val f = (a: Int) => (b: Int) => (c: Int) => a+b+c
为了进一步阐述,REP将写
f: Int => (Int => (Int => Int)) = <function1>
如果显式地给出这样的函数类型,编译器不需要关于a、b和c是什么的信息,只需编写a=>b=>c=>a+b+c即可
f: Int => Int => Int => Int = (a: Int) => (b: Int) => (c: Int) => a+b+c