我正在嘗試編寫一個函數,該函數需要函數的Traversable和值的Traversable,並返回應用於這些值的Traversable。當我嘗試調用列表和矢量上的函數時,出現類型不匹配錯誤。這裏是我的代碼:斯卡拉類型與Traversables不匹配
def applyFunctions[A](x: Traversable[A => A], y: Traversable[A]): Traversable[A] = {
for (ys <- y;
xs <- x
) yield (xs(ys))
}
然後我嘗試使用這個調用這個函數:
transform(List({(x: Double) => x + x}, {(x: Double) => x * 2}), Vector(1,2,3))
而且我得到以下錯誤:
error: type mismatch;
found : List[Double => Double]
required: Traversable[AnyVal => AnyVal]
我認爲,名單是一個Traversable的子類,所以我可以在函數定義中使用Traversable。任何幫助,將不勝感激。
謝謝,完美的工作! – chrisz
不客氣。很高興它有幫助。 :) – Psidom