这是什么意思:地图(1 +)

Mal*_*lio 3 functional-programming scala

我的意思是,我知道这意味着什么:拿出列表并在其中添加1; 也就是说,它相当于map (1 + _ ).我不明白的是Scala如何知道它是等价的.这里发生了什么?

编辑

丹尼尔指出这是一个更普遍的问题.例如

def g(f : Int => Int, x : Int) = f(f(x))
g( (1 + ), 2)
res12: Int = 4
Run Code Online (Sandbox Code Playgroud)

哪个很酷.每天我都会发现Scala可以做的新功能.我想我正在寻找这个特殊事物的完整描述(理想的名称).

Dan*_*ral 8

它有点像这样:

  1. map期望一个函数Int => B(在这种情况下).
  2. 1 +没有解析为函数Int => B,所以尝试其他的东西.
  3. 1 +可以从期望Int参数到函数的方法中解除Int => Int.

普雷斯托.

一个人1 + _用来解决歧义.