えぐち@エスアンドイー です。

>>> On Sat, 13 Feb 1999 09:57:02 +0900, matz / netlab.co.jp (Yukihiro Matsumoto) said:

matz> まつもと ゆきひろです
matz> 
matz> In message "[ruby-dev:5045] [REQ] nand/nor/xor (Re:  Re: parse error "and")"
matz>     on 99/02/12, EGUCHI Osamu <eguchi / shizuokanet.ne.jp> writes:
matz> 
matz> |えぐち> =>  unless FileTest.exist? to and cmp from, to
matz> 
matz> |えぐち> がエラーとなります。
matz> |
matz> |単項の   not 式   および  ! 式  には、この種の問題はないので、
matz> |expr から arg に昇格させて下さい。
matz> 
matz> 単項の ! は今でもargですよね.後はnotをどうするかですか.
matz> ただ,and/orがおけないところに,文法的に矛盾が発生しないから
matz> と言って a(not b) とかけてもあまり美しくない気もします.

なるほど、なっとくです。

  『単語演算子(ってほんとの名前は何ですか)は
    メソッドの引数の式中に使用する事は出来ない』

という掟ですね。

  『使いたい場合は、同義の記号演算子(???)を使用して下さい』

というわけですが、

  『記号演算子は、同義の単語演算子より優先度が強いので、注意して下さい』

という事になりますか、、

matz> |それから、 and, or, not の様な単語演算子シリーズに

matz> |
matz> |	nand
matz> |	nor
matz> |	xor
matz> |
matz> |を追加して頂けませんか?
matz> 
matz> Perlにはxorがありますね.shortcutできないけど.
matz> 
matz> この件についてはだいぶ考えさせてください.最近予約語の追加に
matz> はかなり慎重な方なので.Perlみたいに変数にはかならずタグがつ
matz> く仕様だったらもっと気軽だったでしょうけど.

確かに、予約語の追加は混乱を来すので、慎重になりますね。

C++ も最近(?) and, or, not, xor が予約語化されたので、
ずいぶんコードを手直しして事があります。
その前の bool true false でも嫌な思いしました。

	nand  ... <&>
	nor   ... <|>
	xor   ... <!>
	ior   ... <~>

なんてのは、嫌すぎますか?

matz> # それに個人的にはnandやnorにはいやな想い出が….^^;;;

電気系のCADとかですか?

	えぐち