Отображение функции на последовательность векторов аргументов в Clojure - PullRequest
1 голос
/ 08 декабря 2011

Есть ли способ сопоставить функцию, скажем, 3 аргумента, со списком векторов (или списков) аргументов так, чтобы вектор разрушался?

(defn foo [a b c]
 ...)

([a1 b1 c1] [a2 b2 c2])

Есть ли простая функция, которую я могу использовать для этого? Или мне нужно построить анонимную функцию?

1 Ответ

5 голосов
/ 08 декабря 2011

Вы хотите применить функцию.

(map #(apply foo %) '([1 2 3] [4 5 6]))

EDIT:

Поскольку вы упомянули, что не используете анонимную функцию, я отмечу, что вы можете легко сделать «отображаемую» версию функции foo с помощью некоторого простого состава функции.

(def mfoo (partial apply foo))
(map mfoo '([1 2 3] [4 5 6]))
...