Understanding Clojure reduce better
Code
(defn add [a b]
(+ a b))
(reduce add [1 2 3 4 5])
(reduce add 1 [2 3 4 5])
(reduce add 3 [3 4 5])
;; (reduce add [3 3 4 5])
(reduce add 3 [3 4 5])
(reduce add 6 [4 5])
(reduce add 10 [5])
(remove #(= % :a) [:a :b :c :d])
(defn remove-value [seq value]
(remove #(= % value) seq))
(remove-value [:a :b :c :d] :b)
(reduce remove-value [:a :b :c :d] [:b :d])
(reduce remove-value [:a :b :c :d] [:b])
(reduce remove-value [:a :c :d] [:d])
(reduce remove-value [:a :c] [])