From: matz@... (Yukihiro Matsumoto) Date: 2002-06-02T21:14:09+09:00 Subject: [ruby-dev:17274] Re: [ruby-list:35304] Re: ((1.2)..(3.4)).to_a まつもと ゆきひろです In message "[ruby-dev:17272] Re: [ruby-list:35304] Re: ((1.2)..(3.4)).to_a" on 02/06/02, Masahiro TANAKA writes: |> |希望としては、Ruby本体に欲しいです。というのは、別の要望として、 |> |ブロックなしの (1..5).step(2) が、ステップを属性として持つクラス |> |のオブジェクトとなってほしい、というのがあるからです。 |> |> こういうlazy evaluationについては、ちゃんとした体系を考えた |> 方が良いのかもしれません。でも、Rubyはfunctional languageで |> はないので、こういう場合には「eagerに計算して配列を返す」対 |> 応でもおおむねOKかなと感じたりもします。 | |配列を返すとうれしくない場合があるので、そういう希望をしたわけです。 | (具体的には NArrayのステップ付範囲指定) |本体になければ独自拡張することになりますが、本体にも同様な機能が |搭載されるのであれば、別々に作るよりも効率的かなと思いまして。 いや、もちろんそういうケースがあることは十分承知していますが、 まともに使えるようなものにしようと思えば「汎用のステップ付き 範囲」をlazyに実現する体系をきちんと考えないといけませんし、 (実行効率という意味で)効率的にするのは至難の業だと思います。 汎用性と効率はしばしば対立するので。