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

Xiaodi Wu xiaodi.wu at gmail.com
Fri Jun 10 13:47:22 CDT 2016


On Fri, Jun 10, 2016 at 1:45 PM, L. Mihalkovic <laurent.mihalkovic at gmail.com
> wrote:

> I humbly suggest that some people who are afraid of seing it go might want
> to lookup LINQ (c#) to get a sense of could be done in the future if/when
> the idea of a WHERE clause gets revisited. With the current clause nothing
> more could have happened. Sometimes a step back is required in order to
> move forward again...
> Regards
> (From mobile)
>
>
That would be a powerful gain indeed. My understanding based on the core
team's comments was that `where` was introduced in the hopes of supporting
some pattern matching that was abandoned. So I can only imagine what could
be possible if a LINQ-like feature were to be brought to bear in the
future. It'd be amazing.


> On Jun 10, 2016, at 7:51 PM, Brent Royal-Gordon via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> >> The thought here is along the lines of what Chris said, quoted above,
> and repeated here: "The extended C family of language [...] is an extremely
> popular and widely used set[;] programmers move around and work in
> different languages, and [aligning to expectations arising from other C
> family languages] allows a non-expert in the language to understand what is
> going on." By contrast, the `where` clause violates that expectation and I
> do not see "overwhelmingly large advantages" for doing so.
> >
> > I think you might be slightly misunderstanding Chris's point here. In
> the thread you quoted, somebody suggested fundamentally changing the very
> structure of the syntax—the way blocks are marked out—to something
> completely different from C. Chris said that such a huge deviation from the
> C family would need "overwhelmingly large advantages" before they would
> accept it.
> >
> > This is not the same situation. It is true that there's no similar
> feature in C—mainly because C's loose typing allows you to use &&
> instead—but the `where` clause is a mere augmentation of C practice, not a
> complete break from it. It does not need to pass nearly so stringent a test.
> >
> > --
> > Brent Royal-Gordon
> > Architechies
> >
> > _______________________________________________
> > 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/20160610/5f1512af/attachment.html>


More information about the swift-evolution mailing list