Классы / Методы

;; 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)