【发布时间】:2014-03-07 22:56:45
【问题描述】:
为什么 andThen 在 Scala 中只存在于单参数函数?
以下代码有效:
val double = (x: Int) => x * 2
val timesFour = double andThen double
但是为什么多参数函数没有andThen 方法呢?
val multiply = (x: Int, y: Int) => x * y
val multiplyAndDouble = multiply andThen double
<console>:10: error: value andThen is not a member of (Int, Int) => Int
添加这个方法当然是微不足道的。标准库中省略了它有什么原因吗?
【问题讨论】:
-
在执行一个函数后你不能返回一个以上的“东西”,那么你将如何为你的函数
multiply提供2个参数? -
您可以缩小差距,但将
tupled应用于FunctionN(对于N 大于1)并得到一个Function1TupleN. -
@vptheron 我说的是另一种方式。应用
Function2,然后应用以Function1返回的single 结果。 -
@senia 感谢您的链接。
标签: scala function-composition