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

时间:2011-02-03 14:44:01

标签: scala functional-programming

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

修改

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

def g(f : Int => Int, x : Int) = f(f(x))
g( (1 + ), 2)
res12: Int = 4

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

1 个答案:

答案 0 :(得分:8)

有点像这样:

  1. map需要一个函数Int => B(在本例中)。
  2. 1 +无法解析为Int => B函数,因此请尝试其他操作。
  3. 1 +可以从期望Int参数的方法解除为函数Int => Int
  4. 的Presto。

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