- 初めてのRubyより
論理積や論理和はtrue やfalse ではなく、オペランドのいずれかを返します。これはC 言語族の多くとは異なる特徴です。 例えばnil || 50 という式を評価したとしましょう。50 は真でnil は偽ですから、式全体の値は50 となり ます。
- 初めてのRuby 6.2.3 論理和・論理積演算子 111ページ
でもよく考えたら確かにこっちの仕様のほうが応用ききそうですね。それで偽がnilとfalseだけなんですね。
補足:
しっかし、何が偽であるかはlispと同じなのに、論理演算子の戻し値はlispと違うんですね...。
いろんな言語に手を出すと本気でこんがらがって来るなぁ。
Rubyの面白いところ Part 1 「何がfalseと評価されるか」