(ns robot-name)

(def ^:private letters (map char (range 65 91)))
(defn- generate-name []
  (format "%s%03d" (apply str (repeatedly 2 #(first (shuffle letters))))
          (rand-int 1000)))

(defn robot []
  (atom {:name (generate-name)}))

(defn robot-name [robot]
  (:name @robot))

(defn reset-name [robot]
  (swap! robot assoc :name (generate-name)))

(ns robot-name)

(def ^:private letters (map char (range 65 91)))
(defn- generate-name []
  (format "%s%03d" (apply str (repeatedly 2 #(rand-nth letters)))
          (rand-int 1000)))

(defn robot []
  (atom {:name (generate-name)}))

(defn robot-name [robot]
  (:name @robot))

(defn reset-name [robot]
  (swap! robot assoc :name (generate-name)))

Use rand-nth instead of first and shuffle in robot-name/generate-name
Use rand-nth instead of first and shuffle in robot-name/generate-name

querenker/xclojure,querenker/xclojure,exercism/xclojure,exercism/xclojure