[swift-evolution] [Pitch] Retiring `where` from for-in loops

Xiaodi Wu xiaodi.wu at gmail.com
Tue Jun 14 15:50:23 CDT 2016


Why are you unhappy about this design goal? Simple != simplistic, and
powerful != complicated. Approachability has to do with the slope of the
learning curve, not how high the curve goes.


On Tue, Jun 14, 2016 at 14:18 L. Mihalkovic <laurent.mihalkovic at gmail.com>
wrote:

>
>
> Regards
> (From mobile)
>
> On Jun 14, 2016, at 7:16 PM, David Waite via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> I’m a bit late to this conversation, and I don’t totally understand the
> goal.
>
> There are a *lot* of things you can do in for…in loop with pattern
> matching that also would supposedly go against this interpretation of
> approachability. Pattern matching in general might be considered to go
> against this interpretation.
>
> Is this pitch saying statements such as:
>
> for i in 1..<100 where i%2 == 1 {…}
>
> should be disallowed, while statements like
>
> for case let view? in views { … }
>
> are still approachable enough to warrant being supported in the language?
>
> FWIW, I wouldn’t support removing where based on current arguments without
> either the keyword “where" being eliminated completely from the language,
> and/or adding equivalent intuitive functionality to Sequence with
> same-class performance, e.g. a .where(...) equivalent to .lazy.filter(…).
>
> I’ve known about and used the feature since it was first added to Swift
> (learned via the language book), and don’t fully understand the confusion
> that some developers may have - especially since ‘while’ is already a
> keyword and could have been used if that was the actual semantics.
>
> -DW
>
> On Jun 14, 2016, at 10:32 AM, Xiaodi Wu via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> And from the WWDC Platforms SOTU: "Swift is super simple and
> approachable.... It's great as a first language. And in fact, we think this
> is so important that when we designed Swift this was an explicit design
> goal."
>
>
> Yup... Doesn't bode well for power users... "Swift.. Address your needs
> from 7 till 77... unifies the entire family"
>
> I would be absolutely against adding any more sugar to the for loop. In
> that sense, `where` sets a terrible example that certain features of
> sequences deserve contextual sugar. (And before someone points it out
> again, I've already argued why `for...in` holds its own weight, namely
> difficulty of writing a correct `while` replacement and progressive
> disclosure to the learner so that the concept of iterators can be learned
> afterwards.)
>
> In short, I would very much be opposed to adding keywords "for fun."
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160614/a45aca6d/attachment.html>


More information about the swift-evolution mailing list