Sha256: d401333fc0cf3634ea09458116fed97ebb349eca80aff17ad00553d3a5cd9e2f

Contents?: true

Size: 804 Bytes

Versions: 396

Compression:

Stored size: 804 Bytes

Contents

(defmodule atbash-cipher
  (export (encode 1) (decode 1)))

(defun encode (str)
  (let ((chunks (split-by 5 (transcode str))))
    (string:join chunks " ")))

(defun decode (str) (transcode str))

(defun transcode (str) (lists:filtermap #'cipher/1 str))

(defun cipher
  ([char] (when (=< #\A char) (=< char #\Z))
   `#(true ,(- #\Z (- char #\a))))
  ([char] (when (=< #\a char) (=< char #\z))
   `#(true ,(- #\z (- char #\a))))
  ([char] (when (=< #\0 char) (=< char #\9))
   `#(true ,char))
  ([_char]
   'false))

;; See: https://github.com/lfex/clj/blob/0.3.0/src/clj-seq.lfe#L151-L160
(defun split-by
  ([0 data] data)
  ([_ ()]  ())
  ([x data] (when (> x (length data)))
   (split-by (length data) data))
  ([x data]
   (cons (lists:sublist data x)
         (split-by x (lists:nthtail x data)))))

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.179 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.178 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.177 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.176 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.175 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.174 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.173 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.172 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.171 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.170 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.169 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.167 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.166 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.165 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.164 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.163 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.162 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.161 tracks/lfe/exercises/atbash-cipher/src/example.lfe
trackler-2.2.1.160 tracks/lfe/exercises/atbash-cipher/src/example.lfe