Я хочу сделать функцию maptree со стандартным ML. Если функция f (x) = x + 1; затемЯ хочу сделать функцию maptree со стандартом ML
maptree(f, NODE(NODE(LEAF 1,LEAF 2),LEAF 3));
должен сделать результат
NODE(NODE(LEAF 2,LEAF 3),LEAF 4))
Я пишу код, как показано ниже.
datatype 'a tree = LEAF of 'a | NODE of 'a tree * 'a tree;
fun f(x) = x + 1;
fun maptree(f, NODE(X, Y)) = NODE(maptree(f, X), maptree(f, Y))
| maptree(f, LEAF(X)) = LEAF(f X);
, но когда я исполню этот код, как этот
maptree(f, (NODE(NODE(LEAF 1,LEAF 2),LEAF 3)));
результата не хочу (NODE (УЗЕЛ (LEAF 2, LEAF 3), LEAF 4))) но NODE (NODE (LEAF #, LEAF #), LEAF 4)). Почему это произошло (не число, а #)?