[#37248] [Feature:1.9] Enumerator#inspect — "Yusuke ENDOH" <mame@...>

遠藤です。

12 messages 2008/12/02

[#37337] [Feature #841] Object#self — "rubikitch ." <redmine@...>

Feature #841: Object#self

13 messages 2008/12/09

[#37513] Current status of 1.9.1 RC1's issues — "Yugui (Yuki Sonoda)" <yugui@...>

Hi, folks

14 messages 2008/12/20
[#37516] Re: Current status of 1.9.1 RC1's issues — Masatoshi SEKI <m_seki@...> 2008/12/20

咳といいます。

[#37576] [BUG:trunk] encoding for stdio's — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

11 messages 2008/12/24

[ruby-dev:37249] Re: [ruby-cvs:27586] Ruby:r20368 (trunk): * ext/bigdecimal/bigdecimal.c (BigDecimal_div2): should return

From: Tadashi Saito <shiba@...2.accsnet.ne.jp>
Date: 2008-12-02 15:24:57 UTC
List: ruby-dev #37249
斎藤です。

On Fri, 28 Nov 2008 08:23:52 +0900
Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

> In message "Re: [ruby-dev:37218] Re: [ruby-cvs:27586] Ruby:r20368 (trunk): * ext/bigdecimal/bigdecimal.c (BigDecimal_div2): should return"
>     on Fri, 28 Nov 2008 02:49:47 +0900, Tadashi Saito <shiba@mail2.accsnet.ne.jp> writes:
> 
> おお、全然覚えてない。情けない記憶力ですね。
> # それで15年、いつもフレッシュにRubyに接することができるんだ。(苦笑

僕も記憶力は良くないですねー。おかげで毎日フレッシュに世界に接しています(^^;。


> が、その時の戻り値については、議論されたことはないと思います。

ごめんなさい、

> ||一方で、もしこの変更がありならば、floor、ceil、truncate、round あたりの
> ||仕様も見直せる可能性があると思います。
> |
> |ああ、そうですね。これらもBigDecimalではなく、整数を返した方
> |がうれしいでしょうねえ。
> 
> と思ってソースを読んでみたのですが、これってオプショナルな引
> 数を受け付けて、小数点以下の桁も指定できるんですね。そうなる

という部分を、floor, ceil, ... ではなくdivの話かと思ってツッコミを入れて
しまいました。筋違いで申し訳ないです。自分は

>  * このまま。引数によって戻り値の型が変わるのは気持ち悪い
>  * 引数がない時はInteger。ある時はBigDecimal

については、後者を押します。丸めたはずなのに整数として扱えない(odd?/even?, upto,
succ, ... が呼び出せない)という方が気持ち悪い気がします。

floor等の丸めメソッドは、Integerに対してもFloatに対しても、呼ばれれば
Integerを返すわけですから、それらの慣習に本来合わせるべきであると思います。
引数を指定するという面倒な状況に、例外的なBigDecimalを返すというのはそれはそれで
理にかなっていると思います。


それでおそらく、自分が話を逸らしてしまいましたが、

> BigDecimalの有用性は事実ですし、

そうですね。自分も5年たった今実感してます。SQLにDECIMAL型があり、Webフレームワークと
SQL DBの組み合わせが流行り、O/Rマッパが流行り、そしてそこでBigDecimalが使われるとは
当時想像もしていませんでした。

> という理由で、あのタイミングでBigDecimalをあきらめるのも不合
> 理な判断であったと思います。が、だからといって「それを認めて
> リリースされた」とか、「(今後も)Numericと違う道を選ぶ」という
> 結論を定めてしまうのは、ちょっと行きすぎじゃないかなあ、と感
> じます。

なるほど、まつもとさんの意志が「(今後も)Numericと違う道を選ぶ」でなかった
(そして今もない)ということは、了解しました。ただ五年前の感じだと、メンテナである
小林さんも意志を同じくするかは、ちょっと微妙な気がします。

実際、Numericに近づけるような、バグフィクスのニュアンスが少ない積極的な仕様変更や
そのための議論は、5年間ほぼ皆無だったように見えます。
# なのでBigDecimal#to_rがすぐに使えるようになったのは、自分としてもうれしいです

余談ですが自分は、Numericらしくある10進小数型が欲しくて、結局は自作という道に走り
ました。結果としては、1/4くらいのコード量で、場合によっては数十倍高速で、かつメモリ
消費も3割以上効率的な物が、既存Numericを尊重したつもりのインターフェースと共に実現
できたので、ある程度満足しています。

# という宣伝でした (^^;

--
斎藤ただし

In This Thread