在Scala中完全应用函数,速记符号是不可能的?

时间:2014-09-08 04:44:39

标签: scala functional-programming lambda

有没有办法在没有全新lambda的情况下声明一个完全应用的函数?

scala> val F = (x: Int) => math.pow(x,2)
F: Int => Double = <function1>
scala> val G = F(3)
G: Double = 9.0

我如何声明G是:

() => Double = <function0>

不这样做:

scala> val G = () => F(3)
G: () => Double = <function0>

? _符号似乎不起作用:

scala> val G = F(3) _
<console>:8: error: _ must follow method; cannot follow Double
       val G = F(3) _

1 个答案:

答案 0 :(得分:1)

没有办法。最短的形式是你提出的,即() => F(3)