From: Yusuke ENDOH Date: 2009-12-11T18:58:04+09:00 Subject: [ruby-core:27141] Re: #to_enum ignores block? 2009/12/11 Roger Pack : >> http://mamememo.blogspot.com/2009/11/enumerablerrb-enumerable-lazy-version.html >> http://d.hatena.ne.jp/ku-ma-me/20091111/p2 (in Japanese) > > Excellent. I was wondering where those lazy versions of select were... > As a note, though--I think it does use fibers if you do a #next call on one... Yes. It does not use fiber unless you do a #next call. >> Matz said that these methods are acceptable to be embedded into the >> core, but did not accept their names (selector, mapper, etc.). >> Instead, Matz suggested enum_select, enum_map, etc., but I dislike >> them because they are too verbose. > > perhaps select_enum? `_enum', five letters are too verbose and uncool X-( > I think we should keep both, since it's such a slowdown (and having to > call #to_a everywhere might be a drag...) :) `.to_a', just five letters :-) `selector' is more important than `select' because selector can serve as select but NOT vice vista. So name length of selector should be shorter (or almost same) than select. Indeed, it needs some optimizations. For example, if an enumerator generated by selector is converted to array, it just evaluate the same implementation of current select (only when the original array is not modified after the enumerator is generated). I'm not against "keep both." But if we do so, we should need better naming convension because there are many methods that return an array and that will have *_enum methods respectively. -- Yusuke ENDOH