[#10160] 1 >> 323232 — Tadayoshi Funaba <tadf@...>
ふなばです。
[#10168] [BUG] ruby-1.5.4 — Koji Arai <JCA02266@...>
新井です。
[#10170] sort_by — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#10197] Re: modulo and remainder — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#10217] exit status of child process — nagai@...
永井@知能.九工大です.
まつもと ゆきひろです
[#10226] 組み込み Ruby — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
まつもと ゆきひろです
もりきゅうです。
まつもと ゆきひろです
もりきゅうです。
まつもと ゆきひろです
もりきゅうです。
助田です。みんな悩みは同じ。:-)
まつもと ゆきひろです
助田です。
[#10238] date/date2 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
ふなばです。
まつもと ゆきひろです
ふなばです。
[#10243] Re: Time#usec — ARIMA Yasuhiro <fit0298@...>
有馬です。
[#10271] uri — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
なひです.
[#10272] date/date2 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
ふなばです。
まつもと ゆきひろです
ふなばです。
まつもと ゆきひろです
ふなばです。
[#10278] Re: environment variables — WATANABE Hirofumi <eban@...>
わたなべです.
なかだです。
なかだです。
なかだです。
小松です。
なかだです。
小松です。
なかだです。
小松です。
なかだです。
小松です。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
小松です。
小松です。
なかだです。
小松です。
なかだです。
小松です。
なかだです。
小松です。
なかだです。
小松です。
なかだです。
小松です。
小松です。
なかだです。
小松です。
小松です。
なかだです。
小松です。
なかだです。
小松です。
なかだです。
小松です。
なかだです。
小松です。
まつもと ゆきひろです
なかだです。
小松です。
なかだです。
小松です。
なかだです。
小松です。
小松です。
なかだです。
小松です。
なかだです。
小松です。
なかだです。
わたなべです.
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
小林です。
小林です。
小林です。
小林です。
能條といいます.
なかだです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
小松です。
なかだです。
まつもと ゆきひろです
わたなべです.
なかだです。
わたなべです.
なかだです。
わたなべです.
なかだです。
わたなべです.
わたなべです.
なかだです。
わたなべです.
なかだです。
わたなべです.
[#10280] Ruby 1.4.5 ext/socket/socket.c — Katsuyuki Komatsu <komatsu@...>
小松です。
[#10282] Config::CONFIG.each_value in rbconfig.rb — WATANABE Hirofumi <eban@...>
わたなべです.
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
[#10288] bignum division has bug? — Hiroshi IGARASHI <igarashi@...>
いがらしです。報告だけですみませんが…
[#10325] [REQ] print a warning message for overriding Object#__id__ — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋"rubyholic"秀仁です。こんにちは。
[#10337] [PATCH] $OBJEXT and $objs in mkmf.rb — Minero Aoki <aamine@...>
あおきです。
[#10338] should prohibit `module_function' for class Class — WATANABE Hirofumi <eban@...>
わたなべです.
[#10341] list and quit command in debug.rb — WATANABE Hirofumi <eban@...>
わたなべです.
[#10356] [REQ] Array#replace {} — Minero Aoki <aamine@...>
あおきです。
[#10384] ruby 1.4.6 preview — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
わたなべです.
[ruby-dev:10214] Re: modulo and remainder
まつもと ゆきひろです
In message "[ruby-dev:10204] Re: modulo and remainder"
on 00/07/04, Tadayoshi Funaba <tadf@kt.rim.or.jp> writes:
|実は、僕もまつもとさんの意図がよくわからないかもしれないです。僕は、簡
|単に一貫性も互換性も確保できると思っているのですが、まつもとさんは、そ
|う思ってないのかなあ。僕の考えが浅はかなのかしら。そもそも、これまでの
|問題も、仕様の問題なのか、実装の課題を解決できなかったのか、よくわから
|ないままです。
最大の問題は
v = x / y
w = x % y
または
v, w = x.divmod(y)
としたときに
y * v + w = x
が成立していなかったことです。
次の問題はFloat/Rational/Integerでdivmodの挙動が異なってい
たことです。
どちらを解決するためにも現状の振舞を変更する必要があります。
で、前者を満たす方法はふたつあります。ひとつはfloorで丸める
moduloとtruncate(0方向への丸め)で丸めるremainderです。で、後
者を解決するため、すべての数クラスでこの挙動を揃える必要があ
ります。
で、今回の変更で私はremaidnerに揃えることを選んだというわけ
です。なにか強いポリシーがあってremainderの方を選んだわけで
はないのです。私は負の数を含むmodulo/remainderを使ったことは
ありませんし、残念なことに実際に変更が行われるまで「どっちで
も一緒」という意見しか聞けなかったので、それを疑う余地はなく、
ただ実装がより簡単な方を選んだだけです。
moduloを用意しなかったことは不適切だったと思いますが、modulo
という名前のメソッドだけ追加することは難しくありません。
|で、僕が一番困るのが、modulo がまったくなくなってしまうことです。大抵
|の場合、僕が必要なのは、modulo のほうです。単純に、一利用者として困る
|のです。Common Lisp なら mod、Scheme なら modulo、Python、Perl、Ruby
|では、% で提供されていると認識しています (正しい?)。
正しいと思います。いずれにせよなんらかの形でmoduloを得る方法
は提供します。
|つぎに、% の振舞いが変り、remainder がなくなるのは、互換性を損うので、
|望ましくないと思います。僕もすでに書いたコードを調べなきゃならないです。
|ただ、僕は、remainder のほうをつかった憶えはないです。なので、
|remainder がなくなっても、それはあまり気にしないかもしれないです。
すでに述べた理由によりどこかで振舞が変わるのは不可避だと思い
ます。どれが一番望ましいか、あるいは非互換性が問題にならない
かという違いはあるでしょうが、残念ながら私には判断できません。
|僕としては、最後の Common Lisp 流 mod、rem メソッドを導入、% を どちら
|かの別名とする、が一番ありがたく、その場合は、% が mod (modulo) の別名
|であれば、この上ないです。
了解です。その線を検討します。
|とりあえず、この Common Lisp を基にした仕様で、まつもとさんが、望む一
|貫性なりなんなりが、確保できないものかと思うのですが、数学な人達はどう
|思うかしら。
私も知りたいです。というか、いろんな人の意見が聞きたいんです
けどねえ。
|でも、Ruby では、整数は floor に応答しません。ここで、Ruby は負けてい
|ると思います。いちいち、型を検査すべきなのでしょうか。でも、それはより
|一般的なコードを書くことの妨げにしかならないように思います。
|
|一利用者としては、すべての数値クラスで、floor、ceil trunc, round がつ
|かえて、to_i は trunc の別名ということになれば、すっきりすると思うので
|すが。
むむ、たしかに総称的に扱えるようにより高いクラスでfloor,
ceil, round, truncate使えるようにした方が良いでしょうね。こ
れも考えてみます。
まつもと ゆきひろ /:|}