From: Inaba Hiroto Date: 1999-03-20T12:09:44+09:00 Subject: [ruby-dev:6416] [REQ] Object#+@ as identity (Re: [REQ] p -10 == p(-10)) 稲葉です。 ちょっと前ですが、 Koji Arai wrote: > > 新井です。 > ruby -ve 'p -10' > ruby 1.3.1(99/02/25) [i586-linux] > /tmp/rba06155:1: undefined method `-' for nil (NameError) > 2. 単項orニ項の演算子の場合、 > method-obj ==> method() - obj > method -obj ==> method() - obj > method - obj ==> method() - obj > で、提案ですが、2の場合の挙動を変更したいと思いま > す。 > > method -obj ==> method(-obj) # この場合の挙動だけを変更 この新井さんの提案が採用されたおかげで、1.3.1-990315ではこれまで ruby -e 'p((1..10).size)' と書かなければならなかったのを ruby -e 'p +(1..10).size' と書けるようになり、とっても嬉しいのですが、以下はこれまでと同じにか かなければなりません。 ruby -e 'p((1..10).to_a)' もし単項の+がObjectに常にselfを返すメソッドとして定義されれば上の不満 は解消されるのですが、どうでしょうか? ところで以下のwarningは仕方ないのでしょうか? ruby -we 'p +(1..10).size' /tmp/rba00444:1: warning: ambiguous first argument; make sure 10 「ruby -we 'p +(10)'」ですらwarningが出ます。 -- 稲葉 浩人