-1 for the reasons already brought up. 

I would also point out that half the biasing argument is extremely 
questionable: yes, for-in-where is “biased” in favor of “visit-if” and not 
"visit-unless”, but this form of “bias” is inevitable unless you start 
multiplying keywords (to have one for each “polarity”).

Note that, e.g., `guard` is also biased in a particular direction — we have 
`guard $conditionThatMustBeTrue` but not `unless 
$conditionThatShouldNotBeFalse` — and although this choice *does* make sense 
(due to let-binding being a success-case), it *is* otherwise backwards from 
traditional guard clauses (which were usually `if $exitCondition { $exit }`, 
which is the opposite polarity from how `guard` works).

So unless you want to have 2 of every control-flow keyword, whenever you have 
just one of each you just have to learn the “polarity" of each…this seems 
inevitable. Also note that even if you *did* go for 2-of-each, picking names 
that are sufficiently self-evident is harder than it looks, so in practice 
you’d almost certainly still have to wind up learning at least one of them, if 
not both.

Additionally, I would point `for-in-where` has some unique aspects that would 
complicate taking the “remove today to improve tomorrow” approach (as has been 
done with some other features like splatting).

Specifically, using for-in-where is a stylistic decision, and although 
translating its uses *to* `guard-continue` form can be done mechanically, 
translating `guard-continue` *back* to the (successor of) `for-in-where` in a 
stylistically-appropriate way seems much harder to mechanize…so if it was 
dropped for later, improved reinstatement, the temporary dropping might result 
in losing a lot of the original human stylistic choice, which IMHO is useful 
evidence of the original human intent.

> On Jun 22, 2016, at 11:12 PM, Chris Lattner via swift-evolution 
> <[email protected]> wrote:
> 
> Hello Swift community,
> 
> The review of "SE-0105: Removing Where Clauses from For-In Loops" begins now 
> and runs through June 29. The proposal is available here:
> 
>       
> https://github.com/apple/swift-evolution/blob/master/proposals/0105-remove-where-from-forin-loops.md
> 
> Reviews are an important part of the Swift evolution process. All reviews 
> should be sent to the swift-evolution mailing list at
> 
>       https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> or, if you would like to keep your feedback private, directly to the review 
> manager.
> 
> What goes into a review?
> 
> The goal of the review process is to improve the proposal under review 
> through constructive criticism and contribute to the direction of Swift. When 
> writing your review, here are some questions you might want to answer in your 
> review:
> 
>       * What is your evaluation of the proposal?
>       * Is the problem being addressed significant enough to warrant a change 
> to Swift?
>       * Does this proposal fit well with the feel and direction of Swift?
>       * If you have used other languages or libraries with a similar feature, 
> how do you feel that this proposal compares to those?
>       * How much effort did you put into your review? A glance, a quick 
> reading, or an in-depth study?
> 
> More information about the Swift evolution process is available at
> 
>       https://github.com/apple/swift-evolution/blob/master/process.md
> 
> Thank you,
> 
> -Chris Lattner
> Review Manager
> 
> 
> _______________________________________________
> 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