增加SML / NJ中的打印深度

时间:2011-02-20 21:11:51

标签: sml smlnj

我正试图让SML / NJ在没有的情况下在顶层打印出结果 把#符号放在任何地方。

根据一些旧的文档(以及2001年这个新闻组的帖子),它 应该可以使用Compiler.Control.Print.printDepth

但是,在SML / NJ版本110.7上,这只是一个错误:

- Compiler.Control.Print.printDepth := 100;
stdIn:1.1-30.8 Error: unbound structure: Control in path Compiler.Control.Print.printDepth

1 个答案:

答案 0 :(得分:16)

将来你可能不会更精确。例如,您可以提供一些示例输出和指向您找到上述内容的链接。

如果我理解你的问题是正确的,那么下面的最后一行是你的问题? (代码段

- datatype tree = leaf | node of int * tree * tree;
datatype tree = leaf | node of int * tree * tree 

- val t = node (1, node (2, node (3, leaf, leaf), leaf), leaf);
val t = node (1,node (2,node #,leaf),leaf) : tree 

然后Control.Print结构就是你要找的。所以只需删除Compiler部分并使用

Control.Print.printDepth := 100;

请注意,这是特定于SML / NJ的,而不是ml-yacc。