Как стать автором
Обновить

Комментарии 6

Хорошо, что данную тему поднимают! Спасибо!
Много вопросов возникает к реализации метода Do («Почему она делает столько всего из одного места через такой странный интерфейс?»). Если бы я делал агрегатные функции на коллекциях, я бы выделил отдельные, нормально доступные функции Min, Max, Sum, Product, Average. Это предоставило бы более высокоуровневый интерфейс со строгой типизацией (насколько возможно). Вместо такого перегруженного интерфейса, без проверок и странным способом вернуть значение.
(Более того, такие агрегатные функции могли бы возвращать объект такой же коллекции, что позволяло бы применять их каскадным образом.)
Ну это же пример. А для себя можно все и реализовать как нравится. И выложить в гитхаб потом для общего пользования ;)
Можно было бы просто реализовать reduce(), как базовый примитив, из него можно сделать map(), и остальные агрегаты.
Мерили сравнительную скорость работы такого итератора с обычным циклом?

Маленький вброс — сделать класс-итератор, который бы внедрял тело итерации макроподстановкой при компиляции и сравнить скорость работы по сравнению с вызовом внешнего метода, например. По идее, тогда можно сравняться с обычным циклом.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий