;; Clojure has no enum type: a keyword is the case,
;; and a set of keywords is the type
(def precious-metals #{:platinum :gold :silver})
(def seasons [:summer :fall :winter :spring])
(def gold :gold)
(println "gold is" gold)
;; a set is a function, so it doubles as the validity check
(println "is :gold a precious metal?" (some? (precious-metals gold)))
(println "is :iron a precious metal?" (some? (precious-metals :iron)))
(prn seasons)
;; a map gives each case a value, like an enum with numbers
(def planets {:mercury 1 :venus 2 :earth 3})
(println "earth is" (:earth planets))