Quick actions

cmd+k|ctrl+k

Navigation

Languages

Logger combinators

Snippet info

Language

Clojure

Visibility

public

Author

rightfold

Created

2016-08-26T21:36:23Z

Updated

2016-08-26T21:37:41Z

(defn cmap [f l]
  (fn [r] (l (f r))))

(defn cfilter [p l]
  (fn [r] (if (p r) (l r))))

(defn append [& ls]
  (fn [r]
    (doseq [l ls]
      (l r))))

(def logger
  (->> println
       (cfilter (complement empty?))
       (cmap #(.toUpperCase %))))

(logger "hello")
(logger "")
(logger "world")

((append logger println) "example")
INFO