寝ても覚めてもRubyのことを考えているわけだ。
最近は多値について考えている。 真の多値(LispやSchemeにあるようなの)を導入しようと考えていたのだが、 現状、単値の配列を多重代入で受けるケースがあまりにも多いので (たとえばString#scanの結果は多値であるべきか/配列であるべきか)、 いくつかのコーナーケースに目をつぶって配列が多値であるとするのはどうだろうかと 思うようになった。
コーナーケースとは
である。特に最後のが邪悪だ。
もっとも、実際問題として多重代入の右辺が単一の*であることは希だし、 yield [1]が[[1]]でなく[1]を渡すことで起きる不具合はほとんどないはず。
ここは統一性よりも実用性を選ぶべきか...。
実際にコードを動かしてみないとわからないのでハックしてみよう。