枚举

;; there is no base type to declare: the map holds whatever is put in it,
;; and different enumerations may use different types of value
(def season {:summer 0, :fall 1, :winter 2, :spring 3})
(def status {:busy "Busy", :available "Available"})
(def switch {:on true, :off false})

(def base-fall (season :fall))
;; base-fall is 1, type Long

(def base-busy (status :busy))
;; base-busy is "Busy", type String

(println "base-fall is" base-fall (type base-fall))
(println "base-busy is" base-busy (type base-busy))
(println "base-on is" (switch :on) (type (switch :on)))