Scala 这意味着什么:map(1+;)
我的意思是,我知道它意味着什么:拿这个列表,给其中的每个元素加上1;也就是说,它相当于Scala 这意味着什么:map(1+;),scala,functional-programming,Scala,Functional Programming,我的意思是,我知道它意味着什么:拿这个列表,给其中的每个元素加上1;也就是说,它相当于map(1+)。我不明白的是Scala怎么知道它是等价的。这是怎么回事 编辑 丹尼尔指出这是一个更一般的问题。比如说 def g(f : Int => Int, x : Int) = f(f(x)) g( (1 + ), 2) res12: Int = 4 这很酷。每天我都会发现Scala可以做的一件新的有用的事情。我想我想要的是对这件事的完整描述(最好是一个名字)。有点像这样: map需要一个函数In
map(1+)
。我不明白的是Scala怎么知道它是等价的。这是怎么回事
编辑
丹尼尔指出这是一个更一般的问题。比如说
def g(f : Int => Int, x : Int) = f(f(x))
g( (1 + ), 2)
res12: Int = 4
这很酷。每天我都会发现Scala可以做的一件新的有用的事情。我想我想要的是对这件事的完整描述(最好是一个名字)。有点像这样:
map
需要一个函数Int=>B
(在本例中)1+
无法解析为函数Int=>B
,请尝试其他方法1+
可以从需要Int
参数的方法提升到函数Int=>Int
我们可以使用
1+
来解决歧义。谢谢,但是很容易看出,当省略最后一个列表时,一个包含多个参数列表的函数将如何变成一个常用函数,但这里的情况并非如此。语言规范称之为“eta扩展”,这是对未应用方法的隐式转换。见第6.26.2节