[ruby-dev:31908] Re: generator from Enumerable#map

From: Yukihiro Matsumoto <matz@...>
Date: 2007-09-29 15:24:07 UTC
List: ruby-dev #31908
まつもと ゆきひろです

反応が遅くてごめんなさい。

In message "Re: [ruby-dev:31847] Re: generator from Enumerable#map"
    on Tue, 25 Sep 2007 02:09:33 +0900, "Yusuke ENDOH" <mame@tsg.ne.jp> writes:

|> 1.9 では、Enumerable#map や Enumerable#index をブロックなしで呼ぶと
|> generator を返すようですが、これは Object#to_enum と何か異なるの
|> でしょうか。
|
|情けないことにまだわかってません。気になるので教えていただけません
|でしょうか。

異なっていません。その存在に対称性以外の理由はありません。特
に便利だと思っているわけではないです。対称性(とか直交性)は
Rubyの設計基準では優先度が低いので、なにか理由があればそれを
ひっくりかえすことに異論はありません。

|> Enumerator で yield の返り値相当などを指定できるなら意味がありそうです。

|この拡張が特別に欲しいわけではないのですが、外部イテレータを fiber の
|代用とするためには無いと不便なので、試しに実装してみました。
|# Fiber#resume の引数 (= Fiber.yield の返値) を指定できないので。

えーと、Fiberがないわけではない(っていうか外部イテレータが
Fiberを使って実装されている)ので、特に外部イテレータをFiberの
代わりに使う必要はないんじゃないでしょうか。

In This Thread