Would `sequence(mutatingState:next:)` perhaps be clearer?

> On 20 May 2016, at 10:37 AM, Trent Nadeau via swift-evolution 
> <[email protected]> wrote:
> 
> Ah, yes. I apologize. The fact that state is inout, and the same instance is 
> always passed in confused me. Thanks for the correction.
> 
> On Thu, May 19, 2016 at 7:46 PM, Brent Royal-Gordon <[email protected] 
> <mailto:[email protected]>> wrote:
> > Also note that there's a typo in the second example:
> >
> > for view in sequence(initial: someView, next: { $0.
> > superview }) {
> >
> > // someView, someView.superview, someView.superview.superview, ...
> >
> > }
> >
> >
> > should be:
> >
> > for view in sequence(state: someView, next: { $0.
> > superview }) {
> >
> > // someView, someView.superview, someView.superview.superview, ...
> >
> > }
> 
> I don't think these are mistakes—in each iteration of the loop, $0 is 
> supposed to be the view from the previous iteration.
> 
> If you wanted an example using `state`, here's one which is roughly 
> equivalent to `stride(from: 1.0, to: 2.0, by: 0.1)`, using a 
> non-error-accumulating algorithm:
> 
>         let start = 1.0
>         let end = 2.0
>         let distance = 0.1
> 
>         for color in sequence(state: -1.0, next: { $0 += 1; let next = start 
> + $0 * distance; return next < end ? next : nil }) {
>                 …
>         }
> 
> --
> Brent Royal-Gordon
> Architechies
> 
> 
> 
> 
> -- 
> Trent Nadeau
> _______________________________________________
> swift-evolution mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to