Tôi muốn tạo ra một sự kết hợp của một số giá trị như trong đoạn code dưới đây:Idiomatic Scala cách kết hợp tạo ra uể oải
object ContinueGenerate {
val foods = List("A", "B", "C")
val places = List("P1", "P2", "P3")
val communities = List("C1", "C2", "C3", "C4")
case class Combination(food: String, place: String, community: String)
def allCombinations() = {
for {
food <- foods; place <- places; community <- communities
} yield Combination(food, place, community)
}
def main(args: Array[String]) {
allCombinations foreach println
}
}
Tuy nhiên, vấn đề với phương pháp này là, tất cả các dữ liệu được tạo ra cùng một lúc. Đây là vấn đề lớn khi kích thước của foods
, places
và communities
trở nên rất lớn. Cũng có thể có các thông số khác ngoài ba thông số này.
Vì vậy, tôi muốn có thể tạo kết hợp, theo kiểu tiếp tục, sao cho kết hợp chỉ được tạo khi được yêu cầu.
Điều gì sẽ là một cách Scala thành ngữ để làm điều đó?