Я хотел бы передать ссылку на функцию foo
в sml
и изменить ее значение.рассмотрим следующий сценарий:
val x = ref 5;
foo 3 x;
(* now x will be 3 *)
возможно ли это в sml
?я знаю, что sml
не имеет переменных, поэтому я не уверен, что это возможно.я хотел бы сделать так, чтобы создать такие тесты, как:
val test1 = (foo (seq 2) = 2);
val test2 = (foo it = 2);
, он не будет работать, потому что it
будет содержать вывод test1
(его логическое значение).Я хотел бы передать ссылку x
и изменить ее каждый раз.
val x = ref 0;
val test1 = (foo (seq 2) x = 2);
val test2 = (foo (getnext(!x)) x = 3);
val test3 = (foo (getnext(!x)) x = 4);
val test4 = (foo (getnext(!x)) x = 5);
getnext
получит следующее значение и foo
вставит его в x
, помимо возврата значения, чтобы можно было проверить равенство.