;; a parameter cannot be changed: values are immutable
;; and a local name is bound once. shared state lives in an atom
(def last-data (atom ""))
(defn print5 [data]
(reset! last-data data)
;; subs makes a NEW string, the argument itself is untouched
(println (if (> (count data) 5) (subs data 0 5) data)))
(def text "1234567")
(print5 text)
;; prints "12345"
(println "text is" text)
(println "last-data is" @last-data)