ヌクレオチド配列(「ATGAAGAAC ...」のような文字列)をコドンとして知られるトリプレットのリスト(文字列:「ATG」、「AAG」、「AAC」、...)に単純に分割する簡単なスクリプトをハックしたかった他のことをするために。
このワンライナーの何が問題になっていますか?「java.lang.OutOfMemoryError:GCオーバーヘッド制限を超えました」と表示されるのはなぜですか?
def tripletize(s:String, accu:List[String] = List.empty[String]):List[String] = tripletize(s.drop(3), s.take(3) :: accu)
私はそれが何であるかを尋ねているのではありませんが、なぜ私がそれを得るのか、そしてどのように回避するのかを尋ねています。ところで、これで逆の順序になることはわかっていますが、scalaがStringをコレクション自体と見なすのを避ける方法がわかりません。すなわちこれ:
scala> List.empty ++ "hello"
res6: List[Char] = List(h, e, l, l, o)