Scala verschachtelten Schleifen Rendite

Ich Frage mich, ob es eine einfache Möglichkeit, etwas zu tun, wie dies in scala:

case class Pot(width: Int, height: Int, flowers: Seq[FlowerInPot])
case class FlowerInPot(x: Int, y: Int, flower: String)

val flowers = Seq("tulip", "rose")
val height = 3
val width = 3

val res =
  for (flower <- flowers;
       h <- 0 to height;
       w <- 0 to width) yield {
       //??
  }

und an einem Ausgang hätte ich gerne eine Seq Töpfe mit allen möglichen Kombinationen von Blumen aufgestellt. So im folgenden Beispiel wird die Ausgabe sollte sein:

Seq(
  Pot(3, 3, Seq(FlowerInPot(0, 0, "tulip"), FlowerInPot(0, 1, "rose"))),
  Pot(3, 3, Seq(FlowerInPot(0, 0, "tulip"), FlowerInPot(0, 2, "rose"))),
  Pot(3, 3, Seq(FlowerInPot(0, 0, "tulip"), FlowerInPot(1, 0, "rose"))),
  Pot(3, 3, Seq(FlowerInPot(0, 0, "tulip"), FlowerInPot(1, 1, "rose"))),
  ...
  Pot(3, 3, Seq(FlowerInPot(2, 2, "tulip"), FlowerInPot(2, 1, "rose")))
)

irgendwelche Ideen?

  • Ich glaube, Sie haben zwei Blumen-Generatoren, wie flowerA <- flowers und flowerB <- flowers
  • Es scheinen gute Richtung, aber was, wenn ich n Arten von Blumen statt 2 fixiert?
InformationsquelleAutor gysyky | 2014-05-12
Schreibe einen Kommentar