From: "shugo (Shugo Maeda)" Date: 2013-02-26T11:27:21+09:00 Subject: [ruby-dev:47117] [ruby-trunk - Feature #5512][Assigned] Integer#/ の改訂 Issue #5512 has been updated by shugo (Shugo Maeda). Status changed from Open to Assigned ko1 (Koichi Sasada) wrote: > 宙ぶらりんになっているようなので、まつもとさんにアサインしておきます。 > ご検討下さい。 そういえば、mrubyでは1 / 2が0.5 (Float)になる(ので規格に準拠していない)ようなのですが、 将来CRubyで仕様変更するための布石でしょうか。 後方互換性については、 using OldIntegerDivision としたらInteger#/が現在の挙動に戻るといった対応は考えられるかなと思いますが、その前に Refinementsを何とかしないといけないですね…。 ---------------------------------------- Feature #5512: Integer#/ の改訂 https://bugs.ruby-lang.org/issues/5512#change-37076 Author: tadf (tadayoshi funaba) Status: Assigned Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: core Target version: Next Major Integer#/ を Integer#quo の別名として定義しなおす事を提案します。 現在の Integer#/ はオペランドが整数である場合値が整数になります。整数を 与えた場合の結果だけを見て、あるいは整数ではない場合の結果だけを見て自 分の望み通りの結果を得たと思い込んでしまうかもしれません。 これついての対処として、Integer#div、または Integer#quo を利用するよう 啓蒙するなどいくつかの提案がありうるでしょうが、本質的な解決法は、やは り仕様を変更するしかないと思われます。 これはプログラミングにおける総称性の確保の邪魔になり、Numeric#/ を利用 はバグの温床になり得えます。 -- http://bugs.ruby-lang.org/