(phixonline)-->
constant plain = tagset('Z','A')&tagset('z','a'),
key = shuffle(plain)
function encode(string s, integer decrypt=false)
sequence {p,k} = iff(decrypt?{plain,key}:{key,plain})
for i=1 to length(s) do
integer ki = find(s[i],p)
if ki then s[i] = k[ki] end if
end for
return s
end function
string original = "A simple example.",
encoded = encode(original),
decoded = encode(encoded, true)
printf(1,"original: %s\nencoded: %s\ndecoded: %s\n",{original,encoded,decoded})