15 lines
609 B
Scheme
15 lines
609 B
Scheme
(define (rot13 str)
|
|
(define (rot13-char c)
|
|
(integer->char (+ (char->integer c)
|
|
(cond ((and (char>=? c #\a) (char<? c #\n))
|
|
13)
|
|
((and (char>=? c #\A) (char<? c #\N))
|
|
13)
|
|
((and (char>=? c #\n) (char<=? c #\z))
|
|
-13)
|
|
((and (char>=? c #\N) (char<=? c #\Z))
|
|
-13)
|
|
(else
|
|
0)))))
|
|
(list->string (map rot13-char (string->list str))))
|