【问题标题】:What does this mean: map (1 + )这是什么意思:map (1 + )
【发布时间】: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 可以做的新的有用的事情。我猜我正在寻找这个特定事物的完整描述(最好是名称)。

【问题讨论】:

标签: scala functional-programming


【解决方案1】:

有点像这样:

  1. map 需要一个函数 Int => B(在这种情况下)。
  2. 1 + 无法解析为函数 Int => B,因此请尝试其他方法。
  3. 1 + 可以从需要 Int 参数的方法提升到函数 Int => Int

Presto。

使用1 + _ 来解决歧义。

【讨论】:

    猜你喜欢
    • 2019-04-24
    • 2012-12-26
    • 2023-03-11
    • 2021-05-25
    • 2017-06-30
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多