皆さん初めまして、Kent.Nと申します。 面白そうな話なのでぜひ混ぜて下さい :-) On Wed, 8 Jun 2005 20:47:37 +0900 SAITO Shukaku <shukaku / j-mac.co.jp> wrote: > nilかfalseのどちらか1つだけでも言語としては困らないのかも知れませんが、 > 値の意味合いとしては現在のように両方ある方が、個人的には好きです。false > は文字通り真偽の"偽"として、nilは"該当値なし"として、例え条件式での扱い > が同じであっても、表記上の意図を示せる方が良いなぁと思います。 nilの使い道で一番多いのは 「値があるならそれを、なければnilを返せ」 というパターンだと思います。 で、そういうケースでは、返ってくる可能性のある値は あるカテゴリに収まっているケースがほとんどですよね。 仮にnilが存在しなかった場合、この手のコードは 「値があるならそれを、なければ値のカテゴリに属さない 何かを返せ」 のように作ることになると思います。 #それか、「値があるかどうか」と「値を返せ」を #別々に用意して、いざという時は例外飛ばすか しかしそうすると、返却された値をチェックする際に、 その値がどんなカテゴリに属しているのかをいちいち 考えなきゃいけなくて、とても面倒です。 そんなときに、いつでも何処でも「どのカテゴリにも属さない値」 が用意されていれば、何も考えずにそれを使うことができます。 その為のnilなんじゃないかと。 あと、falseは、値のカテゴリが「真偽値」の場合には 有効な値になり得ますから、nilの代わりにはなりません。 他に、nilがないとコンテナに対するジェネリックな 処理を書きづらいんじゃないかなあ… …とか思うのは根がC++ユーザだからかも知れません(^^; -- Kent.N <kentn / m4.dion.ne.jp>