Earlier quoted context omitted.
A list comprehension is basically a cartesian product with a filter and map applied to it. What we have here is an array constructor, which takes one or more ranges as its arguments. The named `where:` argument provides the filter closure and the final argument is the map, using standard trailing closure syntax. In fact, other than the missing implementation of the constructor, this would be perfectly legal Swift cod…
> A list comprehension is basically a cartesian product with a filter and map applied to it. Ah yes, explain me more the concept I've been using for a dozen years, surely I don't understand it. And with mix of terminology from as far topics as set theory and functional programming, to lessen the confusion. > What we have here is an array constructor, which takes one or more ranges as its arguments. I would never have…
Apparently you don't, as you appeared confused. Whether it was just the syntax of Swift that confused you, or something more general, the parent was not a medium to know.
In any case, the parent gave a general answer. If you already know some parts of the answer, you can skip them (others might not, and can find it useful) -- no need to be rude about it.
>I would never have guessed the arguments thing.
So? Tons of things a programming language does are not guessable if you don't know its semantics, and even less so if you also don't know its syntax. That doesn't even make them bad or difficult, just not already familiar.
>I would never have guessed it's open range.
I would. .. and ... are very common ways to describe ranges, and >I would never have guessed, and I was writing in Perl with its magic variables for more than a half of my professional career and most of my studies.
Well, I would have guessed all 3 of them. $0, $1 and the like are quite common, and at that place they couldn't be anything else but positional arguments.
>And that's the whole point: the syntax is so atrocious that it takes training to understand it.
Or it's so good that it takes training to understand it, as opposed to catering to the lowest common denominator of what people can immediately "guess".