On Mon, Mar 10, 2014 at 10:26:56AM -0500, Phil Bewig wrote:
> I would use an auxiliary function char-plus to add or subtract an offset to
> a character:
> 
> (define (caesar str n)
>   (define (char-plus c)
>     (let ((alpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"))
>       (if (not (char-alphabetic? c)) c
>         (let ((i (- (char->integer (char-upcase c)) 65)))
>           (string-ref alpha (modulo (+ i n) 26))))))
>   (list->string (map char-plus (string->list str))))

If you're using srfi-13, you might as well change the final line to use
string-map:  (string-map char-plus str)

Cheers,
Peter
-- 
http://www.more-magic.net

_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to