【发布时间】:2019-07-28 07:29:01
【问题描述】:
我想在 scala 中设计一个看起来像流动的高阶函数:
def process(data: Seq[Double], costFun: **): Double
costFun 是一个可用于计算方法成本的函数,因为我有多个成本函数,它们可能有不同的签名,例如:
def costGauss(data: Seq[Double], scalaShift: Boolean): Double
def costKernal(data: Seq[Double], theta: Int): Double
我应该如何设计过程函数以使具有不同签名的成本函数可以作为参数costFun传递给它?
【问题讨论】:
-
如果每个函数都有不同的签名,你打算如何在你的
process函数上调用它们? -
看来您不需要高阶函数,而只是在将超参数传递给流程之前部分应用成本函数
-
@ArnonRotem-Gal-Oz 非常感谢,我认为部分应用是我需要的。