Я читал о редукторах clojure, введенных в 1.5, здесь: https://github.com/clojure/clojure/blob/master/changes.md. Я понимаю, что они улучшают производительность существующих функций/фильтров/сокращений. Поэтому, если это так, мне интересно, почему они находятся в новом пространстве имен и не просто заменяют существующие реализации map/reduce/filter. Иными словами, почему бы мне не выбрать новую функцию редукторов?
ИЗМЕНИТЬ:
В ответ на два первых ответа, вот пояснение:
Я приведу здесь примечания к выпуску:
Редукторы обеспечивают набор высокопроизводительных функций для работы с коллекциями. Фактические алгоритмы fold/reduce задаются с уменьшением коллекции. Это позволяет каждой коллекции определять наиболее эффективный способ уменьшить ее содержимое.
Это не звучит для меня, как новые функции map/filter/reduce, по сути, параллельны. Например, ниже в примечаниях к выпуску указано:
Он содержит новую функцию fold, которая представляет собой параллельное сокращение + объединение
Поэтому, если заметка о выпуске плохо написана, мне кажется, что есть одна новая функция, сворачиваемая, которая параллельна, а другие функции представляют собой специфические для коллекции реализации, которые нацелены на получение максимальной производительности, возможной для конкретной коллекции, Я просто неправильно читаю заметки о выпуске здесь?