(define (rot13 s)
  (define (char-plus c n)
    (integer->char (+ n (char->integer c))))
  (define (rot c)
    (cond ((char<=? #\a c #\m) (char-plus c 13))
          ((char<=? #\n c #\z) (char-plus c -13))
          ((char<=? #\A c #\M) (char-plus c 13))
          ((char<=? #\N c #\Z) (char-plus c -13))
          (else c)))
  (list->string (map rot (string->list s))))

(display (rot13 "Cebtenzzvat Cenkvf vf sha!"))
