; Copyright (C) 2014, 2015 by Alexandru Cojocaru ; This program is free software: you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by ; the Free Software Foundation, either version 3 of the License, or ; (at your option) any later version. ; This program is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; You should have received a copy of the GNU General Public License ; along with this program. If not, see . (define (rot c a) (integer->char (+ (modulo (+ (- (char->integer c) (char->integer a)) 13) 26) (char->integer a)))) (define (rot13 str) (string-map (lambda (c) (if (and (char>=? c #\a) (char<=? c #\z)) (rot c #\a) (if (and (char>=? c #\A) (char<=? c #\Z)) (rot c #\A) c))) str)) (display (rot13 "The butler did it!")) (newline) (display (rot13 "Cebtenzzvat Cenkvf vf sha!")) (newline)