On 13.06.2016 18:59, L. Mihalkovic via swift-evolution wrote:
I don’t dispute that we *could* live without “where” - that is not
the point. We could also live without classes or generics or any
of a variety of other features - but why should we when we don’t
have to?
The corollary question every parent has to deal with is to learn to make
a sacrifice now for a better outcome tomorrow. Maybe this is another way
to look at this question?


Yes, if you know *for sure* it it will be "better outcome" tomorrow. I.e. we even don't have any thoughts about what LINQ for Swift can look like, and when we'll only start to discuss this(4.x? 5.x? 6.x?), but we definitely needs to remove handful feature now and then keep the hope it will return in more powerful way. Probably we need to be very close to situation when 'where' in 'for-in' loop prevents introduction of LINQ-like feature to remote this 'where'? (probably with for-in loop together).

Again, we have sugar of `for-in` to be able to iterate sequences&collections in handy way, we need it only for this purpose. We have 'where' feature in 'for-in' to be able to filter the iterating sequence. Filtering is essential operation for sequences/collections (.filter is one of main 3 operations : filter/map/reduce). As we have a special sugar to iterate sequences I find it very logical to have in it a sugar to filter iterated sequences. Force people to use guard-continue instead of 'where' for me is equal to force to use 'while' loop to iterate sequences instead of `for-in` loop.

Also, as was mentioned, in some situations you want to apply logically 'main' filter in 'where' clause and then use guard-continue for additional filters/checks in body.

And 'where' in for-in loops does exist now in Swift. IMO you need really strong arguments to remove it. I've read all the messages of Xiaodi and Erica(and others), and I didn't find any argument that clearly shows that 'where' is a bad thing and must be removed, I saw your opinions or your view of Swift future or your understanding of Swift goals or your understanding of core-team thoughts or your preferable style for coding etc.

If it is not clear if 'where' has 'continue if fails' behavior - IMO we need to *rename* it. It is just not logically to remove the feature if keyword is not clear enough(*for some beginners who see it the first time) - make the keyword clear, then you have no main argument to remove the _feature_.
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to