[squeak-dev] Faster FileStream experiments
johnson at cs.uiuc.edu
Fri Nov 27 12:15:18 UTC 2009
> I think we need a common superclass for Streams and Collection named
> Iterable where #do: is abstract and #select:, #collect:, #reject:,
> #count:, #detect:, etc (and quiet a lot of the messages in enumerating
> category of Collection) are implemented based on #do:
> Of course Stream can refine the #select:/#reject methods to answer a
> FilteredStream that decorates the receiver and apply the filtering on
> the fly. In the same way #collect: can return a TransformedStream that
> decorates the receiver, etc.
Since Stream can't reuse #select: and #collect: (or #count, and
#detect: on an infinite stream is risky), they shouldn't be in the
superclass. In that case, what is its purpose?
i think it is fine to give Stream the same interface as Collection. I
do this, too. But they will share very little code, and so there is
no need to give them a common superclass.
More information about the Squeak-dev