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

Xiaodi Wu xiaodi.wu at gmail.com
Fri Jun 10 13:12:50 CDT 2016

On Fri, Jun 10, 2016 at 12:51 PM, Brent Royal-Gordon <brent at architechies.com
> 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.

Agreed. The test here probably shouldn't be nearly so stringent. But as a
component of grammar (vs. stdlib API), and since it touches looping (vs. a
more advanced concept such as closures), I'd argue that the bar is still
somewhat more elevated than other language features debated here.

> --
> Brent Royal-Gordon
> Architechies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160610/2a14316d/attachment.html>

More information about the swift-evolution mailing list