Open practice opened 7 years ago
(destructure '[[x y & others] v]) => [vec__13737 v x (nth vec__13737 0 nil) y (nth vec__13737 1 nil) others (nthnext vec__13737 2)]
(reductions + (range 10)) => (0 1 3 6 10 15 21 28 36 45)
(defn add+ {:test #(do (assert (= (add+ 2 3) 5)) (assert (= (add+ 4 4) 8)))} [x y] (+ x y)) => #'cedsd.core/add+ (test #'add+) => :ok
https://clojuredocs.org/clojure.pprint/cl-format 를 참고하자.
(clojure.java.browse/browse-url "http://google.com")
(clojure.java.javadoc/javadoc (list* 1 []))
(require '[clojure.reflect :refer [reflect]]) => nil ((with-out-str (clojure.pprint/write (reflect :a)))) ClassCastException java.lang.String cannot be cast to clojure.lang.IFn cedsd.core/eval15665 (form-init4770793195341058308.clj:1) (with-out-str (clojure.pprint/write (reflect :a)))
(require '[clojure.inspector :as inspector]) => nil (def m {:a "a" :b {:c "c" :d [1 2 3] :e {:f "f" :g "g" :h "h"}} :i [1 2 3] :l {:m "m" :n "n"} :o [{:p "p" :q "q"}]}) => #'cedsd.core/m (inspector/inspect-tree m)
(def e (PersistentQueue/EMPTY)) => #'cedsd.core/e (reductions conj e (range 10)) => (#object[clojure.lang.PersistentQueue 0x1fac2484 "clojure.lang.PersistentQueue@1"] #object[clojure.lang.PersistentQueue 0x241a426c "clojure.lang.PersistentQueue@1f"] #object[clojure.lang.PersistentQueue 0x4f2efe4d "clojure.lang.PersistentQueue@3c2"] #object[clojure.lang.PersistentQueue 0x39147f54 "clojure.lang.PersistentQueue@7480"] #object[clojure.lang.PersistentQueue 0x47e2f4f6 "clojure.lang.PersistentQueue@e1b83"] #object[clojure.lang.PersistentQueue 0x319dd744 "clojure.lang.PersistentQueue@1b554e1"] #object[clojure.lang.PersistentQueue 0x9799bac "clojure.lang.PersistentQueue@34f54744"] #object[clojure.lang.PersistentQueue 0x130dab08 "clojure.lang.PersistentQueue@69b3a142"] #object[clojure.lang.PersistentQueue 0x4318b8db "clojure.lang.PersistentQueue@ccc08705"] #object[clojure.lang.PersistentQueue 0x1ce0700b "clojure.lang.PersistentQueue@cb5059a3"] #object[clojure.lang.PersistentQueue 0x59812cc0 "clojure.lang.PersistentQueue@9ebadac6"]) (map seq (reductions conj e (range 10))) => (nil (0) (0 1) (0 1 2) (0 1 2 3) (0 1 2 3 4) (0 1 2 3 4 5) (0 1 2 3 4 5 6) (0 1 2 3 4 5 6 7) (0 1 2 3 4 5 6 7 8) (0 1 2 3 4 5 6 7 8 9)) (def buf (reduce conj e (range 10))) => #'cedsd.core/buf (peek buf) => 0 (pop buf) => #object[clojure.lang.PersistentQueue 0x4ce6b71b "clojure.lang.PersistentQueue@fe1f9924"] (peek (pop buf)) => 1 (peek (pop (pop buf))) => 2
(def m {:host "127.0.0.1" :port nil}) => #'cedsd.core/m (update m :port (fnil #(Integer/parseInt %) "80")) => {:host "127.0.0.1", :port 80} (def m {:host "127.0.0.1" :port "8080"}) => #'cedsd.core/m (update m :port (fnil #(Integer/parseInt %) "80")) => {:host "127.0.0.1", :port 8080}
Tutorials on zippers:
destructure
reductions
test
clojure.pprint/cl-format
https://clojuredocs.org/clojure.pprint/cl-format 를 참고하자.
clojure.java.browse/browse-url
clojure.java.javadoc/javadoc
clojure.reflect/reflect
clojure.inspector/inspect-tree
clojure.lang.PersistentQueue
fnil