【发布时间】:2017-01-02 02:09:42
【问题描述】:
假设我这样定义zipWith:
def zipWith[A](f:(A, A) => A)(xs:Iterable[A], ys:Iterable[A]): Iterable[A] =
(xs, ys).zipped map f
现在我想使用这样的压缩矩阵:
type Matrix = Vector[Vector[Int]]
val zipMatrix: ((Int, Int) => Int) => Matrix => Matrix => Matrix = f =>
zipWith(zipWith(f))
但是我得到了一个错误:
<console>:15: error: type mismatch;
found : (Iterable[Iterable[Int]], Iterable[Iterable[Int]]) => Iterable[Iterable[Int]]
required: Matrix => (Matrix => Matrix)
(which expands to) scala.collection.immutable.Vector[Vector[Int]] => (scala.collection.immutable.Vector[Vector[Int]] => scala.collection.immutable.Vector[Vector[Int]])
为什么 Vector[Vector[Int]] 不匹配 Iterable[Iterable[Int]] ?如何解决这个错误?
【问题讨论】:
标签: scala collections iterable