在scala中,可以组成函数
def f = { x:Int => x + 420}
f.compose(f)
还有一种为对象定义函数应用程序的方法
object F {
var y = 420
def apply (x: Int) = x + y
}
println(F(3))
如何组合这些类似函数的对象?以下不起作用。
println(F.compose(F))
答案 0 :(得分:2)
实现这一目标的一种可能方法:
F.apply _ compose F.apply _
答案 1 :(得分:2)
您可以创建匿名函数F(_)
并撰写:F(_).compose(F(_))
(编辑:请参阅Victor Moroz的评论)。
您还可以将对象设为功能:object F extends (Int => Int)
并撰写F.compose(F)
。