2011-03-13 82 views
2

我写了一个ml函数,并在输出中获得 out = Mary(“a”,[Zary#,Zary#])​​ 其中Mary和Zary是构造函数。但正如你所看到的,输出中有一些“#”。 if if val Mary(“a”,x)= out; 然后它显示 x = [Zary(“b”),Zary(“c”)];哪个是对的。从ml输出中删除哈希

我想获得完整的输出而不是散列。请帮助我。

+1

“ml”? “HTML”?它是什么?这是什么?无论如何,这是关于这个网站的主题。请点击“标志”链接并请管理员将其移至正确的网站。堆栈溢出?另外,为了获得额外的功劳,请阅读FAQ。 – 2011-03-13 13:42:49

+0

这是[在sml中扩展#]的副本(http://stackoverflow.com/questions/5051081/expanding-in-sml/5079394#5079394)和[用REPL中的#-signs截断输出](http ://sackoverflow.com/questions/4532144/output-is-truncated-with-signs-in-the-repl) – 2011-03-14 16:35:36

回答

3

如果(似乎是这样),你正在使用SML/NJ,那么你需要设置或者Control.Print.printDepthCompiler.Control.Print.printDepth(具体取决于哪个版本您正在使用SML/NJ的)的值大于它的默认。

哈希用作缩写,使复杂的输出更易于管理。控制某一给定位输出的复杂程度的阈值相当低。 (还有一个printLength阈值,管理长列表的清除,而不是深嵌套结构。)

有关官方文档,请参见http://www.smlnj.org/doc/Compiler/pages/printcontrol.html

+0

谢谢,那就是诀窍。 – 2011-05-16 10:20:45