【发布时间】:2016-09-04 05:09:34
【问题描述】:
我创建的函数名为maptree。以下是我的代码:
datatype 'a tree = LEAF of 'a | NODE of 'a tree * 'a tree;
fun maptree(f, NODE(X, Y)) = NODE(maptree(f, X), maptree(f, Y))
| maptree(f, LEAF(X)) = LEAF(f X);
我希望 maptree 有这种类型
('a -> 'a) -> 'a tree -> 'a tree
但是编译器推断的类型是
('a -> 'b) * 'a tree -> 'b tree
为什么会这样?
【问题讨论】:
标签: types type-inference ml