1
我希望三个Seq的笛卡尔乘积(斯卡拉)。其中任何一个都可以是空的。我知道任何具有空集的Set的笛卡尔积都是空集。我想要提供一个默认值(下面例子中的“”)。这是骨架代码。带空的笛卡尔乘积(组合)Seq
val letters = Seq("a", "b")
val numbers = Seq("1")
val empty: Seq[String] = Nil
// Desired output = Seq(("a", "1", ""), ("b", "1", ""))
// Cartesian product
// What I'm trying which returns List()
for {
l <- letters
n <- numbers
e <- empty
} yield {
(l, n, e)
}
到目前为止,我已经尝试过lift和orElse(Seq(“”))。 orElse的问题是它返回一个PartialFunction,我放弃了映射或flatMap的功能。
'e < - if(empty.isEmpty)Seq(“”)else empty'? – Dima
谢谢!陷入orElse和其他令人困惑的东西 –