【问题标题】:What does '#' mean in SML? [duplicate]SML 中的“#”是什么意思? [复制]
【发布时间】:2018-02-22 10:23:18
【问题描述】:

我有一个函数,它基于旧树以及旧树中每个节点的最小/最大值创建一棵新树。使用数据类型:

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 编译器要替换为“#”,其中的值显然是整数。 非常感谢你!

【问题讨论】:

  • 你是对的。谢谢。

标签: sml smlnj


【解决方案1】:

正如 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

【讨论】:

  • 如果你发现你的问题是重复的,为什么不删除它而不是回答它呢?
  • 当我搜索我的问题时,我无法找到我的问题重复的问题。其他人可能有同样的问题,他们可以在这里指导,他们的问题将得到解答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-27
  • 2015-07-15
  • 2018-07-17
  • 2012-08-13
  • 2012-10-01
  • 2019-09-12
  • 2015-01-22
相关资源
最近更新 更多