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和其他令人困惑的東西 –