2012TweetScalaのEnumerationは使いにくいScalaには列挙型としてEnumerationが用意されているが、以下の理由で使いにくい。値にメソッドを定義できないDNAというEnumerationを定義しても、個々の値は、DNA.Value型として扱わなければならないため、コードが不自然になる。DNA.AここでDNA.Value型を拡張することが許されていないので、ラベルとしての機能しか持たせることができない。解決策ScalaではJavaのコードが使えるので、Javaのenumを使うのが簡便だが、Scalaのコードだけで同様の機能を実装するには、objectを使うと良い。コード例DNAの塩基を表すコード。genome-weaverのDNA.scalaより抜粋。DNAの文字列をすべて並べる。DNA.complement(code)}このように定義すると、パターンマッチが問題なく使えるし、complementなど機能を充実させることもできる。