我试图在 List.foreach 中调用 2 参数函数,第一个参数固定为循环。事实上,我想将两个参数的函数柯里化为一个参数的函数,该函数返回一个参数的函数(如 List.foldLeft 所做的那样)
这不起作用:
private def mathFunc1(a: Double, b: Double) =
println(a + b)
def eval(v: Double) = {
List(1.0, 2.0, 3.0).foreach(mathFunc1(2.1))
}
这有效:
private def mathFunc2(a: Double)(b: Double) =
println(a + b)
def eval(v: Double) = {
List(1.0, 2.0, 3.0).foreach(mathFunc2(2.1))
}
但我不想更改 mathFunc1 的签名,所以我想做类似的事情:
private def mathFunc1(a: Double, b: Double) =
println(a + b)
def eval(v: Double) = {
List(1.0, 2.0, 3.0).foreach(CONVERT_TWO_PARAMS_TO_ONE_ONE(mathFunc1)(2.1))
}