Я написал SML-код для рекурсивного добавления двух чисел типа данных nat. Функция peanify для преобразования целого числа в nat. Десятичная функция для преобразования nat в целое число.
Требуется помощь по синтаксису для проверки веселья плюс.
Скажем, я хочу проверить на 2 + 1
datatype nat = Zero | Succ of nat
fun peanify (x:int) : nat =
if x=0 then Zero
else Succ (peanify (x-1))
fun decimal (n:nat) : int =
case n of
Zero => 0
| (Succ n) => 1 + (decimal n)
fun plus (x : nat) : (nat -> nat) =
case x of
Zero => (fn y => y)
| Succ x' => (fn y => Succ (plus x' y))
Ожидаемый результат-: val it = Сукк (Succ (Succ Zero)): nat