23 lines
804 B
Hy
23 lines
804 B
Hy
#!/usr/bin/env hy
|
|
(require hyrule [defmain])
|
|
|
|
(setv lowers (lfor *x* (range 26)
|
|
(chr (+ *x* (ord "a"))))) ; generate latin lower 26 chars
|
|
(setv uppers (list (map str.upper lowers))) ; and the upper case
|
|
(setv lowers (list (map ord lowers))) ; convert to unicode codepoints
|
|
(setv uppers (list (map ord uppers)))
|
|
(setv translations ; a dictionary with from->to
|
|
(dict (zip ; codepoint mapping
|
|
(+ lowers uppers)
|
|
(+ (cut lowers 13 None)
|
|
(cut lowers 0 13)
|
|
(cut uppers 13 None)
|
|
(cut uppers 0 13)))))
|
|
|
|
(defn rot13 [string]
|
|
(return (.translate string translations)))
|
|
|
|
(defmain []
|
|
(import fileinput)
|
|
(for [*line* (fileinput.input)]
|
|
(print (rot13 *line*) :end "")))
|