Объедините функции one-arg в функцию multi-arg в Clojure
Интересно, есть ли в Clojure идиома для объединения нескольких функций с одним аргументом в новую функцию, принимающую вектор. Новая функция должна применить первую функцию к первому аргументу и так далее.
Я думаю, что это полезно в ряде ситуаций. Например, вы можете преобразовать координаты x, y и z точки с помощью более простых одномерных функций.Я бы реализовал сам следующим образом, но боюсь, что это уже должно существовать что-то аналогично в стандартном API.
(defn vector-comp [& fns]
(fn [avect]
(vec (map #(%1 %2) fns avect))))