なかだです。

At Thu, 7 Oct 1999 02:36:41 +0900,
中村暁史 Nakamura Akifumi <BXQ04723 / nifty.ne.jp> wrote:
> 他のどの値(nilも)と一致しない値、
> ってのを「自分で作る」にはどうすりゃいいでしょう?
> 
> たとえば、「未定義を表す値」を。nilを使えばいいのかも
> 知れませんが、nilが事情により(笑)使えない場合、
> nilの替わりをすることにする値ってのを。
> 勿論nilと同じ能力を持つ必要はないです。
> 印としてnilの代用品だと判るだけでいいです。
> 
> で、作り方。
> 出鱈目にクラスをでっちあげてそれ(Class値そのもの)を
> 使うという手もありそうですが…ブキミ…
> 
> class Undefined;end
> def undefined; Undefined; end
> 
> 一応これでundefが返す値は「他のどの値とも
> (稼動中は)一致しない」わけですよね…でも…
> 
> もう少しブキミでない手は有りますか?

  こういうものを作ったことがありますが、やっぱりブキミでしょうか
(^^;)。というかこれしか思い付かなかったんですが。

  class <<(WhiteOut = Object.new)
    INSPECTION = "WhitedOutItem".freeze
    def inspect; INSPECTION; end
    def clone; nil end
    alias === equal?
  end

  …ひょっとして同じようなことを考えてるんでしょうか。
# http://member.nifty.ne.jp/nokada/archive/shadowy.rb

-- 
そうだ 強気に ちょっと インチキに☆彡
    中田 "Bugるくらいがちょうどいいかも;-)" 伸悦