単項演算子 - に関するちょっとしたメモ
[ruby-list:48703] 単項演算子 - に関する違和感 という投稿に、ちと目が止まった。
気になったので、Ruby, Perl, Python, PHP, GNU bash, GNU bc にて、「-4%3」「(-4)%3」「-(4%3)」を、とりいそぎ調べてみた。
Ruby | Perl | Python | PHP | GNU bash | GNU bc | |
---|---|---|---|---|---|---|
$ irb | $ perl -ne 'print eval($_)."\n"' | $ python | $ php -a | $ echo $(( )) | $ bc | |
-4%3 | 2 | 2 | 2 | -1 | 2 | -1 |
(-4)%3 | 2 | 2 | 2 | -1 | 2 | -1 |
-(4%3) | -1 | -1 | -1 | -1 | -1 | -1 |
Ruby については、 znz さん id:znz から Class: Numeric (Ruby 1.9.3) を教えてもらいました。ありがとうございます。
ぐぐってみると、こんなプログラムはいやだ: 負の剰余 - bkブログ に、C (GCC 3.3.5)、Java (Sun JDK 1.5.0_05), GNU Emacs 22.0.50.2 の結果がありました。
での
の正負を、
か
かのどちらのそれに合わせるかですね。ぶっちゃけ、
となるような
を取ったときに、
の結果が処理系に依って違ったら、大変なことになるわけです(笑