Project

General

Profile

Actions

Feature #5514

closed

Numeric への quotient と quotrem の追加

Added by tadf (tadayoshi funaba) over 12 years ago. Updated over 3 years ago.

Status:
Feedback
Target version:
-
[ruby-dev:44709]

Description

Ruby では余りを求めるために modulo (%) と remainder が提供されています
が、modulo には対応する div があり、またその組み合わせである divmod も
存在しますが remainder にはありません。そこで対応する quotient と
quotrem を追加することを提案します。

Updated by matz (Yukihiro Matsumoto) over 12 years ago

対称性とか一貫性とか以外にquotientとquoremがあると嬉しい局面っ
てのは具体的に例示できますか?

Updated by tadf (tadayoshi funaba) over 12 years ago

丸めの方向の問題なので、ruby の場合 floor、ceil、truncate、round がある
ことから、4つのパターンが有り得ると思います。ruby の div-mod は、floor
系と考えればいいと思います。実際、Common Lisp の floor は ruby の div
と divmod をも含んだ内容になっています。実際の利用のされかたからすると
すべてが等価値でないので、あとは truncate 系の quotient と quotrem をだ
けあったらいいと思います。

例として身近にある位取り法を見てみると、暦では外挿して1年の前を紀元前1
年 (零年) として表現したりしますが、その零には特別な意味がないわけです
から、紀元前でも後でも1月の前の月は12月のという事になります。この場合は、
floor 系をつかう事になります。一方で、時差を考える場合は、零に向って丸
めるわけですから truncate 系が必要になります。

他の言語だと、smalltalk では、quo と rem があって、haskell では quot、
rem、quotRem、CL では truncate をつかう事ができます。

Updated by ko1 (Koichi Sasada) about 11 years ago

  • Category set to core
  • Assignee set to matz (Yukihiro Matsumoto)

宙ぶらりんになっているようなので、まつもとさんにアサインしておきます。
ご検討下さい。

Actions #4

Updated by naruse (Yui NARUSE) over 3 years ago

  • Status changed from Open to Feedback
  • Target version deleted (3.0)
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0