Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 这意味着什么:map(1+;)_Scala_Functional Programming - Fatal编程技术网

Scala 这意味着什么:map(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

我的意思是,我知道它意味着什么:拿这个列表,给其中的每个元素加上1;也就是说,它相当于
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节