SML:递归加法测试用例语法
SML: Recursive addition test case syntax
我已经编写了 SML 代码来递归地添加两个数据类型 nat 的数字。将整数转换为 nat 的函数 peanify。将 nat 转换为整数的函数 decimal。
需要语法方面的帮助来测试 fun plus。
说我想测试 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 (Succ 零)) : nat
你可以这样写:
val it = plus (peanify 2) (peanify 1)
我已经编写了 SML 代码来递归地添加两个数据类型 nat 的数字。将整数转换为 nat 的函数 peanify。将 nat 转换为整数的函数 decimal。
需要语法方面的帮助来测试 fun plus。
说我想测试 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 (Succ 零)) : nat
你可以这样写:
val it = plus (peanify 2) (peanify 1)