假设我想创建所有可能的字母组合"a"和"b"。对于长度为2的组合,使用for循环可以这样实现:
for {
x <- Seq("a", "b")
y <- Seq("a", "b")
} yield x + y
对于长度为3的组合,它将是:
for {
x <- Seq("a", "b")
y <- Seq("a", "b")
z <- Seq("a", "b")
} yield x + y + z
相当相似。能否将此模式抽象出来,编写通用函数? 我可以想到这样的签名:
def genericCombine[A,B](length: Int, elements: Seq[A])(reducer: Seq[A] => B): Seq[B]
如何在for循环中使用参数化的生成器数量?