Этот код обсуждает именованные аргументы в Clojure из «Радости Clojure»:
(defn slope [& {:keys [p1 p2] :or {p1 [0 0] p2 [1 1]}}]
(float (/ (- (p2 1) (p1 1))
(- (p2 0) (p1 0)))))
(slope :p1 [4 15] :p2 [3 21])
Сама функция, как я понимаю, - нет проблем с деструктуризацией - но я не понимаю вызов.
Мы передаем четыре аргумента на склон?как векторы назначаются: p1 и: p2?