(これは、この Q&Aの変形です)
私がこれを持っているとしましょう:
List( "foo", "bar", "spam" )
キーが文字列の長さであり、値がその長さを持つすべての文字列のコレクションであるマップを作成したいと考えています。言い換えれば、 about List が与えられると、次のようになります。
Map( 3 -> List(foo, bar), 4 -> List(spam) )
これを行うために私が書いたコードは次のとおりです。
list.foldLeft(Map[Long, List[String]]()) {
(m, s) => m(s.length) = s ::
( if ( m.contains(s.length) ) m(s.length)
else Nil )
}
これは機能しますが、元の質問 (上記参照) に対して Daniel Spiewak が提供したエレガントな回答に多くの醜さを追加します。
私のバリアントのソリューションを改善する方法はありますか?
ありがとう!ショーン