-1 I prefer ".filter" Sent from my iPad
> On 22 Dec 2015, at 7:13 AM, Jordan Rose via swift-evolution > <[email protected]> wrote: > > I think Jacob said it already: there's no "x in foo()" construct that you > could add a 'where' to. There's just a 'for' loop; part of the syntax for > 'for' loops is the keyword 'in' and the keyword 'where'. > > Now that doesn't mean we couldn't add this—it's basically a limited/small > form of list comprehension—but then I personally say -1. 'filter' is good > enough for me. > > Jordan > >> On Dec 19, 2015, at 22:10 , Charles Constant via swift-evolution >> <[email protected]> wrote: >> >> Hi Jacob, >> >> I take it that's a -1 ? >> >> I don't quite understand your example, because y in a "for" loop is an >> Array. So if I modify your example (I'll rename "y" to "numbers")... >> >> for x in numbers where x > 2 { } >> >> ...my intuition immediately barks "it's a filter!" >> >> let valid_numbers = x in numbers where x > 2 >> >> I realize it's good to have a closure-based solution for map/filter/reduce, >> so fair enough that we let the filter method exist. Maybe if I understood >> Swift better (is this related to sequences?) this would all make sense... >> but with what grasp of Swift I do have, it makes the language feel baroque >> to have this "where" clause that looks like it ought to instantiate an >> array, but can't. >> >> >> >> >> >> >> >> >> >>> On Sat, Dec 19, 2015 at 9:45 PM, Jacob Bandes-Storch <[email protected]> >>> wrote: >>> It doesn't bother me, because I read it as an additional constraint on the >>> `for` loop rather than an operation being done on the enumerated sequence. >>> That is, >>> >>> for x in y where x > 2 { } >>> >>> is fairly consistent with >>> >>> if let x = y where x > 2 { } >>> >>> And you wouldn't expect to be able to do "let x = y where x > 2". >>> >>> Jacob Bandes-Storch >>> >>>> On Sat, Dec 19, 2015 at 8:22 PM, Charles Constant via swift-evolution >>>> <[email protected]> wrote: >>>> Thanks Charles , >>>> >>>> I know it's possible to do the same thing with filter. The syntax I drew >>>> attention to would be an alternate way. >>>> >>>> My only rationale is that, if it works in one place, it ought to work >>>> everywhere. The redundancy bothers me too, but since the concept exists, >>>> we may as well allow it everywhere. Otherwise, it's still redundant in a >>>> "for" loop (maybe performance is better, but that could be optimized?), >>>> but also inconsistent because it seems intuitively like it ought to create >>>> a subset whereas in reality it is illegal. >>>> >>>> Does it bother anyone else, or am I nitpicking? >>>> >>>> On Sat, Dec 19, 2015 at 7:52 PM, Charles Srstka <[email protected]> >>>> wrote: >>>>>> On Dec 19, 2015, at 9:43 PM, Charles Constant via swift-evolution >>>>>> <[email protected]> wrote: >>>>>> >>>>>> I noticed several weeks ago that the following is illegal: >>>>>> >>>>>> let new_arr = el in arr where el.is_foo // illegal >>>>>> >>>>>> I assumed it would work because it's consistent with the filtering that >>>>>> exists in a "for" loop, i.e.: >>>>>> >>>>>> for el in arr where el.is_foo // legal >>>>>> >>>>>> Is this "new proposal" material? I thought I would check in case it's >>>>>> already on the roadmap, or inherently wrong. >>>>> >>>>> I believe what you want is already possible via the “filter” method. >>>>> >>>>> Charles >>>>> >>>> >>>> >>>> _______________________________________________ >>>> 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 > > > _______________________________________________ > 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
