Hi,
In message "Re: [ruby-core:31785] [Feature #3715] Enumerator#size and #size="
on Fri, 20 Aug 2010 10:08:44 +0900, Run Paint Run Run <redmine / ruby-lang.org> writes:
|An enumerator is effectively immutable. The existence of #size= and
|potentially invoking a Proc for each call to #size, implies that its
|maximum size will change over the course of the iteration. Is this
|likely? If not, we can remove #size=, and treat the Proc as a thunk,
|which would be simpler and faster.
We have discussed the issue in the ruby-dev before. The conclusion we
had then was that:
* it is nice to have a way to tell the number of items without
actual iteration.
* but Enumerator#size is not a good API, since not all enumerators
would have the way to tell the numbers of items. Permutations and
combinations are rather exceptions.
* Enumerator#size= was worse, since it would make enumerators mutable.
* we haven't got the better API after some discussion, so we
preferred not adding it to adding unsatisfying #size.
matz.