Sha256: a546393f40ebcad1090a7029af239190c7dd954d6c34727646d79a69429373f7

Contents?: true

Size: 584 Bytes

Versions: 11

Compression:

Stored size: 584 Bytes

Contents

(ns rotational-cipher)

(def ^:private string (partial apply str))

(def ^:private lower-case "abcdefghijklmnopqrstuvwxyz")

(def ^:private upper-case (->> lower-case (map clojure.string/upper-case) string))

(def ^:private letters (into #{} (concat lower-case upper-case)))

(defn- rotater [shift]
  (let [encoding (->> (cycle letters)
                      (drop (* shift 2))
                      (take 52)
                      (zipmap letters))]
    (fn [char] (get encoding char char))))

(defn rotate [message shift]
  (->> message
       (map (rotater shift))
       string))

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
trackler-2.1.0.53 tracks/clojure/exercises/rotational-cipher/src/example.clj
trackler-2.1.0.52 tracks/clojure/exercises/rotational-cipher/src/example.clj
trackler-2.1.0.51 tracks/clojure/exercises/rotational-cipher/src/example.clj
trackler-2.1.0.50 tracks/clojure/exercises/rotational-cipher/src/example.clj
trackler-2.1.0.49 tracks/clojure/exercises/rotational-cipher/src/example.clj
trackler-2.1.0.48 tracks/clojure/exercises/rotational-cipher/src/example.clj
trackler-2.1.0.47 tracks/clojure/exercises/rotational-cipher/src/example.clj
trackler-2.1.0.46 tracks/clojure/exercises/rotational-cipher/src/example.clj
trackler-2.1.0.45 tracks/clojure/exercises/rotational-cipher/src/example.clj
trackler-2.1.0.44 tracks/clojure/exercises/rotational-cipher/src/example.clj
trackler-2.1.0.43 tracks/clojure/exercises/rotational-cipher/src/example.clj