[#7968] array .{first, last, at} — Kazunori NISHI <kazunori@...>

西@九大です。

25 messages 1999/10/07
[#7969] Re: array .{first, last, at} — nobu.nakada@... 1999/10/07

なかだです。

[#7983] Re: array .{first, last, at} — Kazunori NISHI <kazunori@...> 1999/10/12

西@九大です。

[#7984] Re: array .{first, last, at} — matz@... (Yukihiro Matsumoto) 1999/10/12

まつもと ゆきひろです

[#7985] [patch] Array#delete_at w/ minus value — EGUCHI Osamu <eguchi@...> 1999/10/12

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

[ruby-dev:7998] Re: [patch] Array#delete_at w/ minus value

From: EGUCHI Osamu <eguchi@...>
Date: 1999-10-13 04:21:51 UTC
List: ruby-dev #7998
えぐち@エスアンドイー です。

>>> 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 <eguchi@cagiva.shizuokanet.ne.jp> 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 の定数問題を解消できるとか、、
、、だめかなぁ

	えぐち

In This Thread