Передача массива в функцию, потом нужно исходный неизмененный массив - PullRequest
1 голос
/ 30 апреля 2020

У меня есть функция, которая, как побочный эффект, мутирует массив, который передается в:

fun do_something (n: int, v: bool array) =
       let 
          val i = ref 0
          val count = ref 0
       in while !i < n do
          ( if Array.sub (v, !i) then 
               Array.update (v, !i, false)
            else
               (count := !count + 1); 
            i := !i + 1
          );
          !count
       end

Когда функция закончилась, я хочу, чтобы массив снова имел исходное содержимое. Как я могу это сделать?

...