From: "丹生 光則 Nibu,Mitsunori." Date: 2002-05-08T17:01:04+09:00 Subject: [ruby-list:35017] Re: 式にならない文← a = 4 ; p((a < 3) or (a > 5)) newです. 横入りですみません. On Wed, 8 May 2002 08:28:27 +0900 matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > |p ( not true ) > | > |の場合には、カッコがあるにもかかわらず、式として評価されない、というのが > |不思議。演算子の優先順位だけでは説明ができない。 > > 引数の括弧と式の括弧は見かけ上区別がつかないことが、たけさん > の混乱の原因だと思います。こればっかりは私ではどうにもなりま > せん。Wolframみたいな勇気はないので。 > > ただ、1.7では上記は式の括弧と解釈されるのでより混乱を助長し > ているというのはあるかも。 これはよく理解できませんでした. 確かに, p ( not true ) はSyntaxエラーが返り, p (( not true )) は「false」が表示されますね.(ruby 1.6.4) しかし,前者の場合,括弧が引数を囲むものと解釈されたとしても, not true 自身は,単項演算子+定数ですから,式なのではないでしょうか? p not true が, p ( not ) true と解釈されて,エラーになるのなら,判るのですが. 式が,評価されないまま関数に渡されるということでしょうか? つまりpメソッドに,式オブジェクトが渡される? と言うことは,pメソッドは式オブジェクトを引数に持てない? それは,Suntaxエラーなのでしょうか? ------------------------------- 丹生 光則 Nibu,Mitsunori. 日本電子計算(株) 大阪建設技術部 e-mail: nibu@tec.osaka.jip.co.jp