Sillage
Sillage

Reputation: 81

Racket - encode a message

I am trying to write a function which produces an encoded version of a string where all the letters are swapped with the letter at the same relative position at the other end of the alphabet. For example, an A would become a Z and a Z would become an A; a B would become a Y and a Y would become a B. All numeric characters stay the same and all non-alpha numerics characters are removed.

Upvotes: 1

Views: 219

Answers (1)

soegaard
soegaard

Reputation: 31147

The key is the function char->integer.

Here is a little expression to get you started:

          (for/list ([c "hello world"])
              (define i (- (char->integer c) (char->integer #\a)))
              (integer->char (- (char->integer #\z) i)))

You need to figure out how to handle characters outside a-z correctly.

Upvotes: 1

Related Questions