Я только начал работать с clojure, но, похоже, не могу понять, как использовать/создавать функции более высокого порядка.
Я разделил коллекцию и хочу передать ее в другую функцию, которая что-то сделает с окном элементов. Я не знаю, как это сделать.
(def foo [:a :b :c :d :e])
(partition 3 1 foo)
;;=> ((:a :b :c) (:b :c :d) (:c :d :e))
(defn bar [start next end])
Я думаю, что основной план был бы таким.
(defn faz [collect]
(partition 3 1 collect)
;;maybe do here before passing
(bar stand next end)
)
Возможно, я забегаю вперед, но я также вижу, что есть и другие функции, такие как сокращение и применение, они могут делать что-то подобное, верно? Хотя в большинстве примеров, которые я вижу, это так, что они выполняют операции над двумя элементами одновременно, которые похожи на (partition 2 1 foo)