0
ですが、Scalaの新機能です。私はfoorループの順序に関する質問があります。Scala forループの影響の順序は
type Occurrences = List[(Char, Int)]
lazy val dictionaryByOccurrences: Map[Occurrences, List[Word]] = dictionary.groupBy(x => wordOccurrences(x))
def wordAnagrams(word: Word): List[Word] = dictionaryByOccurrences.getOrElse(wordOccurrences(word), List())
def combinations(occurrences: Occurrences): List[Occurrences] = occurrences match {
case List() => List(List())
case head::tail => {
for (o <- combinations(tail); x <- 1 to head._2)
yield (head._1, x) :: o
}
私はループのために、それは間違っているだろう
def combinations(occurrences: Occurrences): List[Occurrences] = occurrences match {
case List() => List(List())
case head::tail => {
for (x <- 1 to head._2; o <- combinations(tail))
yield (head._1, x) :: o
}
順序を変更する場合、私はfor(x <- xs; y <- ys; ...) yield f(x, y, ...)
の型コンストラクタは、デフォルトではxs
のと同じである