Перечисления

(require '[clojure.string :as str])

(def seasons #{:summer :fall :winter :spring})

(def str-value "Winter")
(def winter (keyword (str/lower-case str-value)))
;; winter is :winter

(println "winter is" winter)

;; keyword never fails — it happily makes up a name that means nothing,
;; so the set is what tells a real season from a typo
(println "winter is a season:" (contains? seasons winter))
(println "summmer is a season:" (contains? seasons (keyword "summmer")))