From: Tanaka Akira Date: 2004-01-16T11:35:29+09:00 Subject: [ruby-dev:22592] Re: empty proc equality In article <200401160217.i0G2Hn2U005256@sharui.nakada.kanuma.tochigi.jp>, nobu.nakada@nifty.ne.jp writes: > 空のprocなら等値とみなしてもいいような気がしますが、arityが異な > るものはまずいかも。 えぇと、proc というのは closure ですから環境が入っていて、それが異なる のもよろしくないんじゃないでしょうか。 % ruby -e ' def m(x) lambda {} end a = m(1) b = m(2) p a == b p eval("x", a) == eval("x", b) ' true false あ、空のだけじゃないか。とすると eval を使わなくても次の例が作れるよう です。 % ruby -e ' def m(x) lambda { x } end a = m(1) b = m(2) p a, b p a == b p a.call == b.call ' # # true false -- [田中 哲][たなか あきら][Tanaka Akira]