SML 中的“#”是什么意思?
What does '#' mean in SML?
我有一个函数,它基于旧树和旧树中每个节点的 min/max 值创建一棵新树。使用数据类型:
datatype 'a Tree = LEAF of 'a | NODE of ('a Tree) * ('a Tree)
和
datatype 'a myTree = myLEAF of 'a | myNODE of 'a*'a*('a myTree)*('a myTree)
例如,
(NODE(NODE(NODE(LEAF(0),LEAF(9)),LEAF(6)),NODE(LEAF(3),LEAF(10))))
应该产生:
(myNODE(0,10,myNODE(0,9,myNODE(0,9,myLEAF(0),myLEAF(9)),myLEAF(6)),myNODE(3,10,myLEAF(3),myLEAF(10))))
似乎一切正常。除了,叶节点和内部节点中的值被替换为“#”。
示例:
minmaxTree t1;
val it =
myNODE (1,2,myNODE (1,2,myNODE #,myLEAF #),myNODE (1,2,myNODE #,myNODE #))
: int myTree
我不明白为什么 sml 编译器要替换为“#”,其中的值显然是整数。
非常感谢你!
正如 molbdnilo 所指出的,这是一个重复的问题,我的问题的答案可以在这里找到:here
有一个输出限制,编译器没有设置为深度打印,正如我需要的那样。应用解决方案 here、
后
我的输出是:
- minmaxTree t1;
val it =
myNODE
(1,2,myNODE (1,2,myNODE (1,2,myLEAF 1,myLEAF 2),myLEAF 1),
myNODE
(1,2,myNODE (1,2,myLEAF 1,myLEAF 2),
myNODE (1,2,myNODE (1,2,myLEAF 1,myLEAF 2),myLEAF 1))) : int myTree
我有一个函数,它基于旧树和旧树中每个节点的 min/max 值创建一棵新树。使用数据类型:
datatype 'a Tree = LEAF of 'a | NODE of ('a Tree) * ('a Tree)
和
datatype 'a myTree = myLEAF of 'a | myNODE of 'a*'a*('a myTree)*('a myTree)
例如,
(NODE(NODE(NODE(LEAF(0),LEAF(9)),LEAF(6)),NODE(LEAF(3),LEAF(10))))
应该产生:
(myNODE(0,10,myNODE(0,9,myNODE(0,9,myLEAF(0),myLEAF(9)),myLEAF(6)),myNODE(3,10,myLEAF(3),myLEAF(10))))
似乎一切正常。除了,叶节点和内部节点中的值被替换为“#”。
示例:
minmaxTree t1;
val it =
myNODE (1,2,myNODE (1,2,myNODE #,myLEAF #),myNODE (1,2,myNODE #,myNODE #))
: int myTree
我不明白为什么 sml 编译器要替换为“#”,其中的值显然是整数。 非常感谢你!
正如 molbdnilo 所指出的,这是一个重复的问题,我的问题的答案可以在这里找到:here 有一个输出限制,编译器没有设置为深度打印,正如我需要的那样。应用解决方案 here、
后我的输出是:
- minmaxTree t1;
val it =
myNODE
(1,2,myNODE (1,2,myNODE (1,2,myLEAF 1,myLEAF 2),myLEAF 1),
myNODE
(1,2,myNODE (1,2,myLEAF 1,myLEAF 2),
myNODE (1,2,myNODE (1,2,myLEAF 1,myLEAF 2),myLEAF 1))) : int myTree