I gave you a solution that solves readability and costs you nothing in performance, and you reject it without saying why. *shrug*
> Reduce is a superset of map/filter
Edit: you're saying that reduce can be abused into a map and a filter. Yes, okay I take your point.
[deleted]
> I meant the actual map, filter, and reduce functions that are part of python
I think you meant "not part of python", I guess I'd agree on that, but then again it's irrelevant. I don't care what mechanism you use to iterate over a list and apply a function to every item, whether it be a comprehension or a map function. The end result is the same, and I'd argue that comprehensions are, or can be, a little cleaner syntactically.
I meant part of python.
https://docs.python.org/3/library/functions.html#map
https://docs.python.org/3/library/functions.html#filter
https://docs.python.org/3/library/functools.html (sadly, I can't link to reduce here)
In addition you previously complain that python doesn't have what you want "I get access to reduce... [in Ruby]" then prove that it does have it, so I don't see what you're saying.
> Clojure is all of the built in functional bits.
Are you saying map, filter, reduce are implemented in the core language and not an add-on library?
I guess, it's true that reduce is part of an included library. But map and filter are "built-in functions". I guess you could make a distinction between those and the language proper, but that's splitting some pretty fine hairs.
> In addition you previously complain that python doesn't have what you want "I get access to reduce... [in Ruby]" then prove that it does have it, so I don't see what you're saying.
Here's what I said:
"Yes, I know that python has map, filter, and reduce. But they're all gimped by the way python implements lambdas."
> Are you saying map, filter, reduce are implemented in the core language and not an add-on library?
If you look at the clojure cheetsheet[1], you can see all of the built-ins (most are functions, some are macros) that Clojure supports (as well as some included libraries).
map, filter, and reduce at all built ins. I strongly doubt that they're supported at the syntax level, but that's kind of lisp's shtick - even stuff like "+" is a built in function, and not "part of the language".
---
Sure, that's an option. It's also an option to only write for loops.
I'd prefer to do neither of those. And I get my way in languages that have ergonomic support for map, reduce, and filter.
> Reduce is orthogonal to map/filter.
Reduce is a superset of map/filter.
> No they're not: map [x2 for x in y], [x2 for x in y if x > 3]
I meant the actual map, filter, and reduce functions that are part of python, not list comprehensions that are, admittedly, a fusion of map and filter.