> On Jun 8, 2016, at 10:51 PM, Erica Sadun via swift-evolution
> <[email protected]> wrote:
>
>>
>> On Jun 8, 2016, at 9:36 PM, Brent Royal-Gordon <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>>> Upon accepting SE-0099, the core team is removing `where` clauses from
>>> condition clauses, writing "the 'where' keyword can be retired from its
>>> purpose as a boolean condition introducer."
>>>
>>> Inspiried by Xiaodi Wu, I now propose removing `where` clauses from `for
>>> in` loops, where they are better expressed (and read) as guard conditions.
>>
>> Do you propose to remove `for case` as well? That can equally be handled by
>> a `guard case` in the loop body.
>>
>> Alternate proposal: Move `where` clauses to be adjacent to the
>> pattern—rather than the sequence expression—in a `for` loop, just as they
>> are in these other syntaxes.
>>
>> for n where n.isOdd in 1...1_000 { … }
>>
>> This makes them more consistent with the syntax in `switch` cases and
>> `catch` statements, while also IMHO clarifying the role of the `where`
>> clause as a filter on the elements seen by the loop.
>
> I saw your post on that *after* I finished sending this. Moving `where` next
> to the pattern, like you'd find in `catch` and switch `case`, the code would
> look like this:
>
> for i where i % 2 == 0 in sequence {
> // do stuff
> }
What about just this?
for i % 2 == 0 in sequence { ... }
The first new identifier gets to be the index variable and subsequent new
identifiers are errors.
- Dave Sweeris
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution