类 / 构造函数

(defrecord Man [name country])

;; one arity of a function calling another is how
;; "a constructor calls its own constructor" is written here
(defn make-man
  ([name] (make-man name "unknown"))
  ([name country] (->Man name country)))

(def man1 (make-man "Vladimir"))
(def man2 (make-man "Vladimir" "Russia"))

(println (:name man1) "-" (:country man1))
(println (:name man2) "-" (:country man2))