Стремятся ли преобразователи Clojure?
В этой записи блога«CSP и преобразователи в JavaScript»Автор утверждает:
Во-первых, мы должны понимать, что многие операции с массивами (или другими коллекциями), такие какmap
, filter
а такжеreverse
можно определить с точки зренияreduce
.
Тактогда мы видим ряд реализаций этого в Clojure не ленив, они хотят:
user> (defn eager-map [f coll]
(reduce (fn [acc v] (conj acc (f v)))
[]
coll))
#'user/eager-map
user> (eager-map inc (range 10))
[1 2 3 4 5 6 7 8 9 10]
Мой вопрос заключается в том, стремятся ли преобразователи Clojure?