From: EGUCHI Osamu Date: 1999-10-13T13:59:57+09:00 Subject: [ruby-dev:8000] Re: [patch] Array#delete_at w/ minus value えぐち@エスアンドイー です。 >>> In message [ruby-dev:7999] Re: [patch] Array#delete_at w/ minus value On Wed, 13 Oct 1999 13:31:30 +0900, matz@netlab.co.jp (Yukihiro Matsumoto) said: matz> まつもと ゆきひろです matz> matz> In message "[ruby-dev:7998] Re: [patch] Array#delete_at w/ minus value" matz> on 99/10/13, EGUCHI Osamu writes: matz> matz> |matz> いや、私もです。諸般の事情でnilとfalseを分離したときには相当 matz> |matz> 気持ち悪かったです。今思えば、しょうがなかったと思うけど。 matz> | matz> |nil と false を分離した事情ってどういう物だったんですか? matz> matz> 今回話題にもなっているHashの未定義値とのからみがきっかけだっ matz> たと思います。で、いろいろ話しているうちにSchemeにおける#fと matz> #undefinedのように偽と未定義値を分離すべきと感じたのが理由で matz> すね。で、Schemeのように#fのみが偽、#undefinedは真とすればすっ matz> きりしたのでしょうが、過去との互換性もありましたし、未定義値 matz> が偽と言うのはいろいろ都合が良いので、やや(かなり、いや相当) matz> 美しくないものの、falseとnilの両方が偽といういびつな現状にな matz> りました。 このお話を聞くと、 Hash (や Array) の要素に nil を 値としていれるのは、基本的に間違い(と言う程ではないけど例外的) だという態度が想定されているんですね。 いまだだに、 false を使おうか nil を使おうか迷いますが、 なんとなく、ルーツを聞くとこれからのコーディングが違うように 思えます。 ちなみに、私は false と nil の両方が偽と言う仕様には、 いまや何も疑問や違和感は感じてないです。 matz> |あんがい matz> | A = void matz> | matz> |で定数の抹消できると、mod_ruby の定数問題を解消できるとか、、 matz> |、、だめかなぁ matz> matz> うーむ。今でも Module#remove_const で消せるからなあ。 あ゛、知らなかった。まだまだ修行が足りないです>わたし えぐち