标准ML,树木类型的地图

时间:2016-05-09 14:08:17

标签: types tree sml ml

我不知道我的代码的类型结果。

例如,

我制作了一个代码

“maptree f(NODE(NODE(LEAF 3,LEAF 4),LEAF 5))”to

“maptree f(NODE(NODE(LEAF 6,LEAF 7),LEAF 8))”。

我的代码是

datatype 'a tree= LEAF of 'a | NODE of 'a tree * 'a tree;
fun f(x) = x+3;
fun maptree f(NODE (X,Y))= NODE (maptree f(X), maptree f(Y))
   | maptree f(LEAF (X)) = LEAF (f X);

我希望('a - >'a) - > '一棵树 - > '一棵树。

但结果是('a - >'b) - > '一棵树 - > 'b tree。

我不知道为什么会这样。

0 个答案:

没有答案