Comment by ajuc
4 years ago
Technically you can implement map as reduce ;)
But yes - for me
(defn factorial [n]
(reduce * (range 1 (inc n))))
is slightly more readable than
def factorial(n):
result = 1
for i in range(2,n+1):
result *= i
return result
I mean in this case the name kinda makes it obvious anyway :)
If the operation is conceptually accumulating something over the whole collection and if it's idiomatic in the language I'm using - I will use reduce. Same with map-y and filter-y operations.
But if I have to do some mental gymnastics to make the operation fit reduce - for loop it is. Or generator expression in case of python.
No comments yet
Contribute on Hacker News ↗