23 lines
606 B
Text
23 lines
606 B
Text
ia: to :integer 'a'
|
|
iA: to :integer 'A'
|
|
lowAZ: 'a'..'z'
|
|
uppAZ: 'A'..'Z'
|
|
|
|
caesar: function [s, xx][
|
|
k: (not? null? attr 'decode)? -> 26-xx -> xx
|
|
result: ""
|
|
loop s 'i [
|
|
(in? i lowAZ)? -> 'result ++ to :char ia + (k + (to :integer i) - ia) % 26
|
|
[
|
|
(in? i uppAZ)? -> 'result ++ to :char iA + (k + (to :integer i) - iA) % 26
|
|
-> 'result ++ i
|
|
]
|
|
]
|
|
return result
|
|
]
|
|
|
|
msg: "The quick brown fox jumped over the lazy dogs"
|
|
print ["Original :" msg]
|
|
enc: caesar msg 11
|
|
print [" Encoded :" enc]
|
|
print [" Decoded :" caesar.decode enc 11]
|