繁体   English   中英

Scala中的笛卡尔积函数

[英]Cartesian product function in Scala

我正在尝试编写一个通用的cross函数,该函数将产生两个可迭代对象的笛卡尔积。 这是我的尝试:

      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)

但是,签名并不完全正确。 我得到:

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")))

我想在不同类型的元素上采用2 Iterable是什么?

def cross[A, B](a: Iterable[A], b: Iterable[B]): Iterable[(A, B)] =
            for (i <- a; j <- b) yield (i, j)

问题未解决?试试以下方法:

Scala中的笛卡尔积函数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM