えぐち@エスアンドイー です。

>>> In message [ruby-dev:8781] Re: [ruby-list:19945] Re: array + empty string
    On Thu, 30 Dec 1999 23:46:35 +0900, matz / netlab.co.jp (Yukihiro Matsumoto) said:

matz> まつもと ゆきひろです
matz> 
matz> In message "[ruby-dev:8778] Re: [ruby-list:19945] Re: array + empty string"
matz>     on 99/12/30, EGUCHI Osamu <eguchi / shizuokanet.ne.jp> writes:
matz> 
matz> |ただ、引数の自動の to_a を廃止する事には賛成ですが、
matz> |ary#+ 以外にも ary#replace, ary#concat と ary#|
matz> |が引数の自動の to_a を行います。
matz> |
matz> |これらも廃止しますか?
matz> 
matz> 手元の実装ではそれぞれ引数 obj が配列でないとき
matz> 
matz>   ary#replace
matz> 
matz>     obj.to_a ではなく [obj] を使う。ただし nil は [] に。
matz> 
matz>   ary#concat
matz> 
matz>     エラー
matz> 
matz>   ary#|
matz> 
matz>     self + obj.to_a ではなく self.push obj を使う。
matz> 
matz> としてます。replaceのnilの扱いが少々苦しいですね。

ary#concat のエラーと、ary#| の self.push obj は
違和感ないですが、ary#replace で nil だけ [] として
例外扱いするのはどうも違う言語みたいで(笑)
ちょっと微妙ですね。

本当に [nil] に置き換えるつもりで

  ary.replace(nil)

とすると [] になるのもちょっと変かも、、
#  ary.replace([nil]) で実現できますが ^^;;

配列でない素のオブジェクトが replace に渡されたら、
エラーじゃまずいんでしょうか?

	えぐち