on Fri Jul 01 2016, Brent Royal-Gordon <brent-AT-architechies.com> wrote:
>> On Jul 1, 2016, at 12:34 AM, Haravikk <[email protected]> wrote: >> >> Sequences are currently dead easy to implement, and to implement in >> an ad-hoc way via AnySequence(body:), how would that be done under >> this required indexing scheme? > > `sequence(state:next:)` could be adapted into a possibly-infinite > `Collection`, and it's not much more difficult to use than > `AnySequence`. Yes, the state would gain an Equatable constraint, that's all. > (Although it would be more efficient to use a custom > iterator for it than it would be to iterate with its indices.) Whether the resulting collection is going to be efficient after optimization depends on many factors. I can easily imagine this being optimal: for i in collection( first: 0, next: { state in state < 100 ? state + 5 : nil }) { print(i) } However, it is true that the most reliable path to efficiency is always going to be to encode the state and next in a protocol conformance -- Dave _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
