【发布时间】:2011-02-03 14:44:00
【问题描述】:
我的意思是,我知道这意味着什么:取出列表并将其中的每个元素加 1;也就是说,它相当于map (1 + _ )。我不明白的是 Scala 如何知道它是等价的。这是怎么回事?
编辑
Daniel 指出这是一个更普遍的问题。例如
def g(f : Int => Int, x : Int) = f(f(x))
g( (1 + ), 2)
res12: Int = 4
这很酷。每天我都会发现 Scala 可以做的新的有用的事情。我猜我正在寻找这个特定事物的完整描述(最好是名称)。
【问题讨论】:
-
谢谢,但是当省略最后一个列表时,很容易看出具有多个参数列表的函数如何变成柯里化函数,但这里并非如此。
-
语言规范将此称为“eta 扩展”,即未应用方法的隐式转换。请参阅scala-lang.org/docu/files/ScalaReference.pdf 第 6.26.2 节
标签: scala functional-programming