



| Leverage homoiconicity and immutability to empower your developing experience |
(defn foo [a b]
(let [x (/ a b)
y (+ a b)]
(+ x y)))(foo 2 3)(defn foo [a b]
(let [x (/ a b)
y (+ a b)]
(println "x: " x)
(println "y: " y)
(+ x y)))(foo 2 3)dbg macro(defn foo [a b]
(+ (dbg (* a b))
(/ (dbg b) 3)))(foo 12 2)☕ How is it related to homoiconicity?
(defmacro dbg[x]
(when *assert*
`(let [x# ~x]
(println (str '~x ": ") x#)
x#)))def like crazy(defn foo [a b]
(let [x (/ a b)
y (+ a b)]
(def x x)
(def y y)
(+ x y)))(foo 2 3)(+ x y)☕ How is it related to immutability?
scope-captureDemo on the IDE
Use the dbg macro
Add sc.api to your profile.clj
Play with sc.api