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]