【发布时间】:2016-08-18 16:44:11
【问题描述】:
我来自 Java,想像这样组合两个部分函数:
def sum(a: Int, b: Int, c: Int) : Int = a + b + c
我想写这样的东西:
val l = List(1, 2, 3)
l.foreach(println _ sum (1, _ : Int, 3) ) // It's supposed to apply
// the partial sum(1, _: Int, 3)
// and println computed value.
但它拒绝编译。有没有办法简洁地修复它?
【问题讨论】:
-
您将部分评估函数(类似于
f(1,_))和部分函数混合在一起。sum是一个完整的函数,而不是部分函数,这意味着对于函数的每个域元素,在其 codomain 中都有一个关联元素。 -
@pedrofurla 部分应用函数,对。我不会编曲,可以吗?
-
第二行没有意义。不确定是否值得尝试解释原因。
-
当然可以。但是您的代码不是在组合函数,而是在应用值、函数和元组,或者实际上是在尝试。
-
好的,我想我明白你想要什么了。
标签: scala function partial-functions