你好,我是新来的ML和写一个树形图功能,以下数据类型: datatype tree = NIL | CONS of (tree * tree) | LEAF of int;
这是我的树形图功能: fun treemap f = fn LEAF x => LEAF (f x)
| CONS(y,z) => CONS (treemap f y, treemap f z);
我知
这是我的第一个SML程序。我正在尝试编写一个函数,以列表形式将第一个数字返回到Hofstadter的女性或男性序列的第n个数字。我至今是: val m = fn (n) => if n = 0 then 1 :: [] else m f (n - 1);
val f = fn (n) => if n = 0 then 0 :: [] else f m (n - 1);
您可以了解这里的顺序:
这是我一直在研究的第二个SML程序。这些功能是相互递归的。如果我称奇(1),我应该是真的,甚至(1)我应该是假的。这些函数应该适用于所有正整数。然而,当我运行这个程序: fun
odd (n) = if n=0 then false else even (n-1);
and
even (n) = if n=0 then true else odd (n-1);
我得到:
所以我试图用ML的参考类型实现bubblesort。我编译了Poly/ML中的代码,似乎“while(!flag)”循环只对任何输入执行一次。 例如:[2,3,1]被“排序”为[2,1,3],即第一个循环工作但第二个循环未运行。 “标志”打印一次。 怎么了? 谢谢。 fun bubbleSort l = (* l being a list of references *)
let
v