[swift-evolution] [Proposal] Remove eager `map` and `filter`
Brent Royal-Gordon
brent at architechies.com
Sun Jun 19 15:28:07 CDT 2016
> 1. Make sure that
>
> Array(sequence.lazy.map { ... }) and sequence.map { ... }
> Array(sequence.lazy.filter { ... }) and sequence.filter { ... }
>
> are just as fast (with -O). "Fix lazy filter" proposal should help with this.
>
> 2. Remove eager `map` and `filter`
>
> 3. Remove `lazy` property
>
> sequence.map { ... } will call lazy `map`, which is at least as fast as eager version
>
> 4. Re-add `array` property to LazySequence
>
> So that we can more easily convert to multipass sequence when needed.
The first three Swift 1 betas were this way; then the lazy higher-order functions were changed to the current design, apparently because the all-lazy solution was confusing. (It's also worth noting that if we had only lazy versions, they could not take @noescape.) So I don't really think this is going to fly.
--
Brent Royal-Gordon
Architechies
More information about the swift-evolution
mailing list