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

L. Mihalkovic laurent.mihalkovic at gmail.com
Mon Jun 13 10:59:30 CDT 2016


Regards
LM
(From mobile)

> On Jun 13, 2016, at 5:22 PM, Sean Heber via swift-evolution <swift-evolution at swift.org> wrote:
> 
> 
>> On Jun 13, 2016, at 10:16 AM, Xiaodi Wu <xiaodi.wu at gmail.com> wrote:
>> 
>> On Mon, Jun 13, 2016 at 9:54 AM, Charlie Monroe <charlie at charliemonroe.net> wrote:
>> 
>>> On Jun 13, 2016, at 4:46 PM, Xiaodi Wu <xiaodi.wu at gmail.com> wrote:
>>> 
>>> On Mon, Jun 13, 2016 at 9:28 AM, Sean Heber <sean at fifthace.com> wrote:
>>> I’m just (probably obtusely) suggesting that there are different levels and styles of expression and that the existence of one does not render other styles invalid.
>>> 
>>> In relation to the “where” debate, the fact that you can express everything with “guard” or “if” as you can with “where” is not, in my mind, a strong  argument against “where” because it ignores other more intangible aspects that are going to be a lot harder to quantify since they depend on the context of the problem, the surrounding code, the mindset of the writer, and the assumed mindset of the reader.
>>> 
>>> 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?

>>> 
>>> I'm not sure where this comes in. I was clarifying what I mean when I call a language construct 'expressive.' As I understand the term, `where` is not expressive, whereas classes and generics are expressive.
>> 
>> Perhaps this is due to English not being my first language, but I go by the dictionary definition of expressive:
>> 
>> expressive (adjective) - effectively conveying thought or feeling.
>> 
>> And I believe that for-in-where is expressing the condition more effectively (and efficiently) than adding if/guard-continue into the actual code block.
>> 
>> That's fine for English, but I just mean that in a language design context I've always understood the word to encompass the *breadth* of thoughts that can be expressed. In that sense, `where` might express one thing economically, but it cannot express very many things at all, no matter how much text you write in a `where` clause.
> 
> Yes, true, there are certainly two meanings in play here - the technical domain specific concept, and the more casual definition. I think the concern of myself (and some others) is that the technical definition, perhaps somewhat ironically, is not expressive enough to capture all of the facets of expression that matter to all of us! I think this particular discussion is taking place at the intersection of technology and liberal arts.
> 
> l8r
> Sean
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution


More information about the swift-evolution mailing list