[#10226] 組み込み Ruby — Kazuhiro Yoshida <moriq.kazuhiro@...>

もりきゅうです。

17 messages 2000/07/05
[#10230] Re: 組み込み Ruby — matz@... (Yukihiro Matsumoto) 2000/07/05

まつもと ゆきひろです

[#10231] Re: 組み込み Ruby — Kazuhiro Yoshida <moriq.kazuhiro@...> 2000/07/05

もりきゅうです。

[#10237] Re: 組み込み Ruby — matz@... (Yukihiro Matsumoto) 2000/07/06

まつもと ゆきひろです

[#10278] Re: environment variables — WATANABE Hirofumi <eban@...>

わたなべです.

162 messages 2000/07/11
[#10285] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/11

なかだです。

[#10306] Re: environment variables — nobu.nakada@... 2000/07/12

なかだです。

[#10355] Re: environment variables — nobu.nakada@... 2000/07/20

なかだです。

[#10359] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/23

小松です。

[#10360] Re: environment variables — nobu.nakada@... 2000/07/23

なかだです。

[#10361] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/23

小松です。

[#10370] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/24

なかだです。

[#10374] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/24

小松です。

[#10376] Re: environment variables — nobu.nakada@... 2000/07/24

なかだです。

[#10380] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/25

小松です。

[#10381] Re: environment variables — matz@... (Yukihiro Matsumoto) 2000/07/25

まつもと ゆきひろです

[#10386] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/25

なかだです。

[#10397] Re: environment variables — matz@... (Yukihiro Matsumoto) 2000/07/25

まつもと ゆきひろです

[#10399] Re: environment variables — nobu.nakada@... 2000/07/25

なかだです。

[#10407] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/26

小松です。

[#10409] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/26

小松です。

[#10416] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/26

なかだです。

[#10421] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/26

小松です。

[#10435] Re: environment variables — nobu.nakada@... 2000/07/27

なかだです。

[#10442] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/28

小松です。

[#10444] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/28

なかだです。

[#10446] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/28

小松です。

[#10453] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/31

なかだです。

[#10459] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/31

小松です。

[#10464] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/31

なかだです。

[#10466] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/07/31

小松です。

[#10472] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10474] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/01

なかだです。

[#10475] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10476] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10480] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/01

なかだです。

[#10483] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10485] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/01

なかだです。

[#10489] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10490] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/01

なかだです。

[#10491] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10492] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/01

なかだです。

[#10493] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/01

小松です。

[#10494] Re: environment variables — matz@... (Yukihiro Matsumoto) 2000/08/01

まつもと ゆきひろです

[#10495] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/02

なかだです。

[#10506] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/02

小松です。

[#10507] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/02

なかだです。

[#10508] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/02

小松です。

[#10509] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/02

なかだです。

[#10511] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/02

小松です。

[#10512] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/02

小松です。

[#10515] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/03

なかだです。

[#10516] Re: environment variables — Katsuyuki Komatsu <komatsu@...> 2000/08/03

小松です。

[#10518] Re: environment variables — matz@... (Yukihiro Matsumoto) 2000/08/03

まつもと ゆきひろです

[#10531] Re: environment variables — "Shigeo Kobayashi" <shigeo@...> 2000/08/03

小林です。

[#10547] Re: environment variables — Satoshi Nojo <nojo@...> 2000/08/03

能條といいます.

[#10549] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/04

なかだです。

[#10555] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/04

なかだです。

[#10558] Re: environment variables — matz@... (Yukihiro Matsumoto) 2000/08/04

まつもと ゆきひろです

[#10364] Re: environment variables — matz@... (Yukihiro Matsumoto) 2000/07/24

まつもと ゆきひろです

[#10365] Re: environment variables — WATANABE Hirofumi <eban@...> 2000/07/24

わたなべです.

[#10368] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/24

なかだです。

[#10369] Re: environment variables — WATANABE Hirofumi <eban@...> 2000/07/24

わたなべです.

[#10371] Re: environment variables — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/07/24

なかだです。

[#10372] Re: environment variables — WATANABE Hirofumi <eban@...> 2000/07/24

わたなべです.

[#10384] ruby 1.4.6 preview — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

24 messages 2000/07/25

[ruby-dev:10204] Re: modulo and remainder

From: Tadayoshi Funaba <tadf@...>
Date: 2000-07-04 14:11:04 UTC
List: ruby-dev #10204
ふなばです。

At 2000-07-04T14:05:17+0900 (2451729.712JD),
matz@netlab.co.jp (Yukihiro Matsumoto) wrote:

matz> ruby-talkの話ですが、ruby-devにふります。

matz> ruby-mathな話かもしれませんが、ふなばさんは参加しておられな
matz> いので。

どうも。数学も英語も苦手な僕としては、ありがたいことです。

matz> うーむ、moduloが必要だという点については理解しました。

matz> ふなばさんとしては「moduloがあれば良い」という立場なのでしょ
matz> うか? それともPython流divmodでないと良くないという立場なの
matz> でしょうか?
(中略)
matz> ruby-talkにも書きましたが、ありえる選択肢としては

matz>   * Python流
matz>   * 現状(+modulo)

matz> くらいを考えてます。でも、CL流のmod,remメソッドを導入(%はそ
matz> のどちらかへのalias)というのもありえると思います。

実は、僕もまつもとさんの意図がよくわからないかもしれないです。僕は、簡
単に一貫性も互換性も確保できると思っているのですが、まつもとさんは、そ
う思ってないのかなあ。僕の考えが浅はかなのかしら。そもそも、これまでの
問題も、仕様の問題なのか、実装の課題を解決できなかったのか、よくわから
ないままです。

僕は数学が得意なわけではないし、「正しい」ことをしようとしているわけで
ないと思います。

で、僕が一番困るのが、modulo がまったくなくなってしまうことです。大抵
の場合、僕が必要なのは、modulo のほうです。単純に、一利用者として困る
のです。Common Lisp なら mod、Scheme なら modulo、Python、Perl、Ruby 
では、% で提供されていると認識しています (正しい?)。

つぎに、% の振舞いが変り、remainder がなくなるのは、互換性を損うので、
望ましくないと思います。僕もすでに書いたコードを調べなきゃならないです。
ただ、僕は、remainder のほうをつかった憶えはないです。なので、
remainder がなくなっても、それはあまり気にしないかもしれないです。

僕としては、最後の Common Lisp 流 mod、rem メソッドを導入、% を どちら
かの別名とする、が一番ありがたく、その場合は、% が mod (modulo) の別名
であれば、この上ないです。

Common Lisp の floor は、オプショナルな引数をとることができ、多値を返
します。Python の divmod は、つぎのようなものではないかと思います。

(defun divmod (x y)
  (multiple-value-list (floor x y)))

で、Ruby もこれでいいと思います。そうでなければならないわけではない、
のかもしれませんが、僕にとっては、望ましいです。

また、floor の代りに、truncate をつかうと、divrem (?) もできそうですが、
これもあっていいと思います。

(defun divrem (x y)
  (multiple-value-list (truncate x y)))

Ruby の floor、to_i (trunc)、modulo、remainder は、つぎのように考えら
れるかもしれません。

(defun ruby-floor (x) ;; #floor
  (car (multiple-value-list (floor x))))

(defun ruby-trunc (x) ;; #to_i (#trunc)
  (car (multiple-value-list (truncate x))))

(defun ruby-modulo (x y) ;; #modulo
  (cadr (multiple-value-list (floor x y))))

(defun ruby-remainder (x y) ;; #remainder
  (cadr (multiple-value-list (truncate x y))))

別段 quotient があってはよくない、という考えはないです。

とりあえず、この Common Lisp を基にした仕様で、まつもとさんが、望む一
貫性なりなんなりが、確保できないものかと思うのですが、数学な人達はどう
思うかしら。

ところで、Common Lisp の floor 関数は、浮動小数点数も整数も受けつけま
すよね。Scheme も Python でも同じです。

でも、Ruby では、整数は floor に応答しません。ここで、Ruby は負けてい
ると思います。いちいち、型を検査すべきなのでしょうか。でも、それはより
一般的なコードを書くことの妨げにしかならないように思います。

一利用者としては、すべての数値クラスで、floor、ceil trunc, round がつ
かえて、to_i は trunc の別名ということになれば、すっきりすると思うので
すが。

ふなば ただよし

In This Thread