ScalaでfoldLeftを使ってみる
foldLeftを使ってみる
foldLeft使用の覚書
list内の単語の集計を行って降順にする
これだけでリスト内の単語の集計とソートが行える
val countWordsList = List("a", "b", "c", "a", "d", "b", "e", "b") val wordAggregate = countWordsList.foldLeft(Map[String, Int]().withDefaultValue(0)){ (map, key) => map + (key -> (map(key) + 1)) }.toSeq.sortBy(_._2).reverse println(wordAggregate)
文字列の置換を行う
val replaceMap = Map("{$1}" -> "health", "{$2}" -> "wealth") val beforeText = "{$1} is better than {$2}" val afterText = replaceMap.foldLeft(beforeText){ (tex, map) => tex.replace(map._1, map._2) } println(afterText)