From: matz@... (Yukihiro Matsumoto) Date: 1999-11-08T13:11:53+09:00 Subject: [ruby-dev:8271] Re: 例外を処理する 2 項演算子 まつもと ゆきひろです In message "[ruby-dev:8269] Re: 例外を処理する 2 項演算子" on 99/11/08, GOTO Kentaro writes: |いちばん上の は標識みたいでイカすなぁ。これに一票。 えーと、アイディアが暴走する前に。 まず、第一に名前(記号)はかなり重要であることに注目してくださ い。記号は情報量が少ないので、なかなか難しいのです。自分が意 味を知らない記号を含むプログラムは暗号として受け取る率が上が ります。 暗号になりにくい(Perlよりはマシ)というのがRubyの現時点でのウ リのひとつなので、新しい記号を採用する前にかなり考える必要が あると言う点だけ強調しておきます。 Rubyの記号演算子のうち、完全にRuby独自と呼んでも良いのは === だけだという点に注目してください。これも実はIconあたりから見 掛けだけ奪って来たものですし、構成する記号が = だけなんで、 同一性判定の一種(類似品)だなとの推測が効きやすくなってます。 ちゅーわけで、以下のように考えています。 (a) 後置rescue(rescue修飾子)の採用 a rescue b => begin a rescue; b end ただし優先度はif修飾子と同様になるので、 a = b rescue c は (a = b) rescue c と解釈される。 (b) 記号演算子(ここでは仮にop)の採用 a op b => begin a rescue; b end 優先度は通常演算子程度、つまり a = b op c は a = (b op c) と解釈される。 (c) a,b両方を採用する。 (d) 新予約語(ここでは仮にres)の採用 a res b => begin a rescue; b end 優先度は適当に。 (d) なにも変更しない ここで、b,cには演算子をどうするかという問題が、dには予約語を どうするかという問題があり、かなり深刻な問題です。 ちゅーことで、私の中での優先度はa,d,良い記号名が発見されれば cくらいに考えています。 まつもと ゆきひろ /:|)