RosettaCodeData/Task/Caesar-cipher/Clojure/caesar-cipher-3.clj

8 lines
301 B
Clojure

(defn fast-caesar [n s]
(let [m (mod n 26)
upper (map char (range 65 91))
upper->new (zipmap upper (drop m (cycle upper)))
lower (map char (range 97 123))
lower->new (zipmap lower (drop m (cycle lower)))]
(clojure.string/escape s (merge upper->new lower->new))))