On 12-Oct-03, Karl Robillard wrote:

> I followed a link off the Pleac site to the ROT13 implementation
> page (http://www.miranda.org/~jkominek/rot13/). The REBOL version
> posted there is unbelievably bad! It's so bad that I suspect it was
> sent in as a joke. I sent the webmaster the version below. I just
> hope the site is still being maintained. I'd hate for someone to
> think REBOL is so cumbersome.


> REBOL[]

> foreach c input [
>    cap: c and 32
>    c: c and complement cap
>    if (c >= #"A") and (c <= #"Z") [
>        c: c - #"A" + 13 // 26 + #"A"
>    ]
>    prin to-char c or cap
> ]
> prin "^/"

I got wondering if REBOL's case-insensitivity could be put to good use
with this problem, and came up with the following.  Not much
difference in code-size to your approach, but different-looking,
anyway...

rebol []

text: input
forall text [
    letter: to-string text/1
    if all [letter >= "a" letter <= "z"][
        text/1: text/1 + either letter < "n" [13][-13]
    ]
]
text: head text
print text

-- 
Carl Read

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.

Reply via email to