我正在尝试编写一个函数,该函数需要函数的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