go => S = "Big fjords vex quick waltz nymph!", println(S), println(rot13(S)), println(rot13(rot13(S))), nl. % Rot 13 using a map rot13(S) = S2 => lower(Lower), upper(Upper), M = create_map(Lower, Upper), % If a char is not in a..zA..z then show it as it is. S2 := [M.get(C,C) : C in S]. create_map(Lower, Upper) = M => M = new_map(), Len = Lower.length, LDiv := Lower.length div 2, foreach(I in 1..Len) II = (LDiv+I) mod Len, if II == 0 then II := Len end, M.put(Upper[I],Upper[II]), M.put(Lower[I],Lower[II]) end. lower("abcdefghijklmnopqrstuvwxyz"). upper("ABCDEFGHIJKLMNOPQRSTUVWXYZ").