! Copyright (C) 2006 Daniel Ehrenberg
-! See http://factorcode.org/license.txt for BSD license.
-USING: kernel math sequences strings io combinators ascii ;
+! See https://factorcode.org/license.txt for BSD license.
+USING: kernel math sequences io combinators ascii ;
IN: rot13
-: rotate ( ch base -- ch ) tuck - 13 + 26 mod + ;
+: rotate ( ch base -- ch ) [ - 13 + 26 mod ] [ + ] bi ;
: rot-letter ( ch -- ch )
{
{ [ dup letter? ] [ CHAR: a rotate ] }
{ [ dup LETTER? ] [ CHAR: A rotate ] }
- { [ t ] [ ] }
+ [ ]
} cond ;
: rot13 ( string -- string ) [ rot-letter ] map ;