From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?=) Date: 2002-03-25T23:46:45+09:00 Subject: [ruby-dev:16590] Re: defined? autoload constant けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :16539 ] the message: "[ruby-dev:16539] Re: defined? autoload constant ", on Mar/22 13:40(JST) Yukihiro Matsumoto writes: >まつもと ゆきひろです >|センダ部分は定数/変数に限るで良かったと思うのですが... なんか, まつもと >|さんには珍しいかなという気もしなくはない(完全性を求めているところが). > >というか、センダを定数/変数に限るという文法を書くのはそれは >それはたいへんのような気がします。ますます文法ルールが大きく >なりそう。 ま. それは言えますね. >|>これはバグかも。 >| >|それこそどのように実行するという明確な仕様は提示されていませんので, バグ >|ではないと思いますが, よく分らない動作には違いないと思いますね. > >バグでした。レシーバを2回評価してた。 まだ, ちょっとおかしいみたい. ruby 1.6.7 (2002-03-25) [i686-linux] irb(main):007:0> def foo; p 1; 1; end irb(main):008:0> def bar; p 2; 2; end irb(main):010:0> defined?((foo+bar)) #(1) 1 "method" irb(main):017:0> defined?(foo+(bar+foo)) #(2) 1 2 "method" (1)はexpressionで, (2)はbarを評価するのはおかしいのでは? >|>一応、defined?の決定に必要な最低限を実行しているつもりです。 >| >|ということでしたが, defined?の戻り値を決定するには, センダー部分だけ評価 >|すればよいと思いますが, 違いますか? > >あってます。 (2)はこれを前提にしていますが. __ ..............................石塚 圭樹@日本ラショナルソフトウェア... ----------------------------------->> e-mail: keiju@rational.com <<---