Mais conteúdo relacionado
Semelhante a Clojure vs Design Patterns (20)
Clojure vs Design Patterns
- 2. –Alan J Perlis
“It is better to have 100 functions operating on
one data structure than to have 10 functions
operate on 10 data structures.”
- 4. (defn cooley-tukey [signal]…)
(defn prime-factor [signal]…)
(defn choose-fft []
(if relatively-prime?
prime-factor
cooley-tukey))
(defn main []
(let [signal (get-signal)]
((choose-fft) signal)))
- 6. user> (defprotocol BarkingDog "this is a barking
dog" (bark [this] "dog should bark"))
BarkingDog
user> (extend-protocol BarkingDog
clojure.lang.IPersistentVector (bark [v] (conj v
"bark!")))
nil
user> (def a-vector [1 2 3 4])
#'user/a-vector
user> (bark a-vector)
[1 2 3 4 "bark!"]
- 8. (defn update-account-status
[account-id get-fn status save-fn]
(let [account (get-fn account-id)]
(when (not= status (:status account))
(log/info “Updating status for account:” account-id)
(save-fn (assoc account :status status)))))
(defn get-account-from-mysql…)
(defn get-account-from-datomic…)
(defn get-account-from-http…)