From: EGUCHI Osamu Date: 1999-10-13T13:21:51+09:00 Subject: [ruby-dev:7998] Re: [patch] Array#delete_at w/ minus value えぐち@エスアンドイー です。 >>> In message [ruby-dev:7997] Re: [patch] Array#delete_at w/ minus value On Wed, 13 Oct 1999 13:02:26 +0900, matz@netlab.co.jp (Yukihiro Matsumoto) said: matz> まつもと ゆきひろです matz> matz> In message "[ruby-dev:7996] Re: [patch] Array#delete_at w/ minus value" matz> on 99/10/13, EGUCHI Osamu writes: matz> matz> |matz> atって名前からは範囲を取り出してはいけないような印象がありま matz> |matz> す。個人的な印象ですが。 matz> | matz> |そうすると、 Array#at は Array#[] のサブセットですか? matz> matz> そうですね。 なるほど、、 matz> |また Array#at= (左辺値版 Array#[]= に相当)ってありですか? matz> matz> 現状では ary.at(25)=4 のような式は許していないのですが、将来 matz> は可能性があるでしょう。いや ary.at_put(25,4) とか。^^;;; そうかぁ、 ary.last = 4 は出来ても、 ary.at(25)=4 は 現状では不正ですね。 #それに左辺値化はやっぱやりすぎかも、、 at_put で名前は良いかは別にして、 ary.at_put(25,4) の 形式が無難ですね。 matz> |matz> | * void を代入すると対応する要素削除 matz> |matz> | * 範囲外の要素の参照で void を返す matz> |matz> | matz> |matz> | と言う仕組みを考えてみました。 ... matz> |「気持ち悪い」という感覚はわかります。 matz> |が、 nil が [] でも false でもないのも matz> |最初はかなり「きもちわるぅ」と思いました。(私だけ?) matz> matz> いや、私もです。諸般の事情でnilとfalseを分離したときには相当 matz> 気持ち悪かったです。今思えば、しょうがなかったと思うけど。 nil と false を分離した事情ってどういう物だったんですか? matz> で、あの同じ気持ち悪さ(いや、今回は1.5倍か)をもう一度味わう matz> のはいやだなあってことです。よっぽどの理由があれば別ですが。 「よっぽどの理由」ですかぁ、、確かに要素削除と範囲外参照識別の 2つの為に、特殊変数を導入するのもちょっと大げさですね。 あと、単純に変数や定数に void を代入した時の挙動も 考えてなかったです。。 あんがい A = void で定数の抹消できると、mod_ruby の定数問題を解消できるとか、、 、、だめかなぁ えぐち