[swift-corelibs-dev] LazySequenceType: make prefix return a lazy collection
Mark Aron Szulyovszky
mark.szulyovszky at gmail.com
Mon Jan 4 07:15:52 CST 2016
Hi,
I came across hit issue while chaining filter() and prefix() on lazy
sequences:
https://bugs.swift.org/browse/SR-461
And started wondering if it would be more consistent if
lazy.filter().prefix() returned a custom
LazySequenceType<Generator.Element> instead of
Slice<LazyFilterCollection<Range<Generator.Element>>>.
That way lazy.filter().prefix() could be used to chain *pure lazy
operations*, which can be actually quite useful in some cases.
I understand that this has implications, and it would make prefix() less
consistent in terms of return type, but it would eliminate confusion like
SR-461 <https://bugs.swift.org/browse/SR-461>.
Also, this wouldn't be a much different than how how lazy.filter() is
implemented, since it also returns a custom LazySequenceType instead of
SequenceType.
Has this been considered before? Would there be any cases where this would
create unintended side effects?
As far as I see, it wouldn't change the meaning of prefix(), only would it
extend its usefulness.
I submitted a PR to the SwiftSequence library that demonstrates the
implementation of this:
https://github.com/itchingpixels/SwiftSequence/commit/26101e5aec6c266048bbad4db7b44b9c453f07ca
And I'm happy to contribute to contribute it to stdlib if people find it
useful.
Thanks a lot!
Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-corelibs-dev/attachments/20160104/93b5b87e/attachment.html>
More information about the swift-corelibs-dev
mailing list