> On May 31, 2016, at 1:00 PM, Erica Sadun via swift-evolution 
> <[email protected]> wrote:
> 
> 
>> On May 31, 2016, at 12:52 PM, Xiaodi Wu <[email protected]> wrote:
>> These lines of reasoning are what have compelled me to conclude that `where` 
>> might not be salvageable.
> 
> To which, I'd add: `where` suggests there's a subordinate and semantic 
> relationship between the primary condition and the clause. There's no way as 
> far as I know this to enforce it in the grammar and the proposal allows both 
> clauses to be stated even without the connecting word.

OK. I am naive enough to try to informally define a rule that would make 
“where” required and cover all (?) cases in the proposal:

‘where’ is required after an if-let for any clause involving a variable or 
constant defined in that 'if let. All boolean expressions after the ‘where’ 
must reference at least one of constants defined by the ‘if let'

Allowed:

let a = a, b=b where b > 10 && a > 5 && b> a


Not allowed:
…
let a = a
let b = b where b > 10 && a > 5
b > a
...

…
let a = a
let b = b where b > 10
a > 5
b > a
…

This requires the use of commas because all inter-related ‘if let’ constants 
must be associated with a single ‘where'

This makes the use of ‘&&’ more natural, since everything to the right of 
“where” is a boolean expression

The formal grammar is left as an exercise :)

The downside:

        I would not have to answer all the ‘Why won’t this compile?’ questions 
on stack overflow. Of course, I would not want to do that for the current 
syntax, either.


> You could make a vague argument, I suppose, for renaming `where` to `when` 
> but all in all, even killing `where` we benefit with better expressive 
> capabilities and a simpler grammar.
> 
> -- E
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> 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