Scala中的笛卡尔积函数
我正在尝试编写一个通用的Scala中的笛卡尔积函数,scala,Scala,我正在尝试编写一个通用的交叉函数,它将生成两个iterable的笛卡尔乘积。以下是我的尝试: def cross[a, b, A <: Iterable[a], B <: Iterable[b]](a: A, b: B): Iterable[(a, b)] = for (i <- a; j <- b) yield (i, j) def cross[a,b,adef cross[a,b](a:Iterable[a],b:Iterable[b])
交叉函数,它将生成两个iterable的笛卡尔乘积。以下是我的尝试:
def cross[a, b, A <: Iterable[a], B <: Iterable[b]](a: A, b: B): Iterable[(a, b)] =
for (i <- a; j <- b) yield (i, j)
def cross[a,b,adef cross[a,b](a:Iterable[a],b:Iterable[b]):Iterable[(a,b)]=
对于(idef cross[A,B](A:Iterable[A],B:Iterable[B]):Iterable[(A,B)]=
因为(我知道!谢谢:-)我活着就是为了给予!知道!谢谢:-)我活着就是为了给予!@DmytroMitin-怎么回事?你认为应该是什么?@DmytroMitin-怎么回事?你认为应该是什么?
Error:(147, 15) inferred type arguments [Nothing,Nothing,List[Int],Array[String]] do not conform to method cross's type parameter bounds [a,b,A <: Iterable[a],B <: Iterable[b]]
println(cross(List(1, 2, 3), Array("a", "b", "c")))
def cross[A, B](a: Iterable[A], b: Iterable[B]): Iterable[(A, B)] =
for (i <- a; j <- b) yield (i, j)