たたみすぎる Array#flatten

http://d.hatena.ne.jp/ku-ma-me/20071110/p1

これはよく共感できますー。特にここ。

逆に、「たためる限りたたみたい」という現状の flatten への需要がどういうときに発生するのか想像できません。

そう、これがなんでこうなってるのかいまいちわからないんですよね。深さ2くらいまでなら、追加する時にpushしないでappendすればいいだけだし。

しかし 1.9 で Array#flatten の引数で展開するレベルが指定できるとは知りませんでした。これは便利。

でもバイナリをよく扱うヒトとしては、 String#[nth] が Integer じゃなくて String を返す仕様はちょっと許容できないというか、これまでこれに依存したものをたくさん書いてしまっているので、移行できないのですよね。なんでこうなったのか不思議。勿論書き直せばいいのですが、pack/unpack以外の方法が思いつかなくて、またpack/unpackを使うためにはいったん一時的なStringオブジェクトを作らないといけない……とか思うとやる気が起きません。