[#37679] [FEATURE:trunk] EncDet again — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

23 messages 2009/01/03

[#37748] $LOAD_PATHとバージョンの運用の関係 — akira yamada / やまだあきら <akira@...>

1.9系でのバージョンの運用と$LOAD_PATHの値について質問です。

12 messages 2009/01/09
[#37758] Re: $LOAD_PATHとバージョンの運用の関係 — "NARUSE, Yui" <naruse@...> 2009/01/11

成瀬です。

[ruby-dev:37720] Re: [Bug #974] Range#max で終了しないことがある

From: "Yugui (Yuki Sonoda)" <yugui@...>
Date: 2009-01-07 10:39:55 UTC
List: ruby-dev #37720
Yuguiです。

On 1/5/09 6:38 AM, Yukihiro Matsumoto wrote:

> eがNumericでIntegerでない時、...のmaxはエラーにすることにし
> ました。末尾を含まない最大値が定義できないので。

当面これをエラーにすることには賛成ですが、理由が違うと思います。

先頭sと末尾eで定義されるところの{n <- N | s <= n < e} なる集合に最大値が
存在することはまったく問題ないわけです。
問題は、上に開いた区間の最大値を定義するために適切な距離関数を与えねばな
らないところ、両端が整数であればsuccの"移動距離"で定まる離散的な距離を与
えてやるのが適切であると推測されるのに対して、整数と非整数の組み合わせで
はそれが曖昧だと言うことです。

この曖昧さに対して、浮動小数点同士の開いた範囲の場合に倣って例外を発生す
ることは当面適切だと思います。しかしながら、将来的にsuccに似たメソッドを
シンボルで指定してやる形式は検討の余地があるかと思いました。

Class Float
  def step_0_5
    self + 0.5
  end
end

(1.0...3.0).max(:step_0_5)  #=> 2.5


この検討の是非はともかく、この変更の理由については明確にしておく必要があ
ると思いましてpostしました。
なお、バグとは言いづらいので、時期的な問題からこの変更は1.9.1には取り込
みません。

-- 
Yugui <[email protected]>
http://yugui.jp
私は私をDumpする

In This Thread