Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
The Caesar cipher is a simple shift cipher that relies on transposing all the letters in the alphabet using an integer key between
Using a key of
26 will always yield the same output due to modular arithmetic.
The letter is shifted for as many values as the value of the key.
The general notation for rotational ciphers is
ROT + <key>.
The most commonly used rotational cipher is
ROT13 on the Latin alphabet would be as follows:
It is stronger than the Atbash cipher because it has 27 possible keys, and 25 usable keys.
Ciphertext is written out in the same formatting as the input including spaces and punctuation.
The quick brown fox jumps over the lazy dog. gives
Gur dhvpx oebja sbk whzcf bire gur ynml qbt.
Gur dhvpx oebja sbk whzcf bire gur ynml qbt. gives
The quick brown fox jumps over the lazy dog.
make chez if you're using ChezScheme or
make guile if you're using GNU Guile.
Sometimes the name for the scheme binary on your system will differ from the defaults.
When this is the case, you'll need to tell make by running
make chez chez=your-chez-binary or
make guile guile=your-guile-binary.
(load "test.scm") at the repl prompt.
rotational-cipher.scm reloading as you go.
(test) to check your solution.
If some of the test cases fail, you should see the failing input and the expected output.
The failing input is presented as a list because the tests call your solution by
(apply rotational-cipher input-list).
To learn more about
apply see The Scheme Programming Language -- Chapter 5