我很难弄清楚如何将每个已处理的字符恢复为 int 值。
该函数应该像这样工作: val caesar = fn : int * int -> int
所以如果 k = 2466 并且 n = 2,那么输出应该是 4688
希望代码不会太奇怪(我是 SML 新手)。
(* Load Libs *)
load "Int";
load "Real";
load "String";
load "Char";
load "List";
fun caesar (k, n) =
let
fun k_string (i) = Int.toString(i)
fun item_k_char (x, y) = Char.ord (List.nth (x, y))
val val_k_string = k_string(k)
val k_explode = String.explode(val_k_string)
val counter = ref 0
val counter_end = (String.size(val_k_string) - 1)
in
while (!counter >= counter_end) do (
item_k_char(k_explode, !counter) + n;
counter := !counter + 1
)
end;