SML, как заставить, находясь в списке символов, вернуть int?

Мне немного сложно понять, как вернуть каждому из обработанных символов значение 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;
1
задан TBK 15 September 2010 в 13:06
поделиться