增加SML/NJ中列表的打印深度

增加SML/NJ中列表的打印深度,sml,smlnj,Sml,Smlnj,我使用Emacs在sml中编写了一个大约4行的简单函数,当我尝试在缓冲区中调用函数/对其求值时,它返回这个函数,并在末尾加上3个点 val it = [1,2,2,2,2,2,2,2,2,2,2,2,...] : int list 结尾的点是什么?我的代码没有打印任何点。这是来自Emacs还是sml?有什么提示吗 而且我应该得到一个更长的列表,比如 [1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2] 这就是为什么会有点吗 这就是为什么会有点吗 是的

我使用Emacs在sml中编写了一个大约4行的简单函数,当我尝试在缓冲区中调用函数/对其求值时,它返回这个函数,并在末尾加上3个点

val it = [1,2,2,2,2,2,2,2,2,2,2,2,...] : int list
结尾的点是什么?我的代码没有打印任何点。这是来自Emacs还是sml?有什么提示吗

而且我应该得到一个更长的列表,比如

[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
这就是为什么会有点吗

这就是为什么会有点吗


是的。

您看到的是正在使用的SML的任何版本的默认打印长度(Emacs只是一个编辑器,您使用的是什么编译器?)。您可以更改打印长度(请参见此:,至少对于SML/NJ),也可以编写自己的列表打印功能。REPL仅用于开发/调试。它通常会在值处给你一个峰值——而不是完整值本身(可能很大)。V110.75好的,我读了上面的那些,但是不清楚在哪里放置命令,比如Control.Print.printDepth:=60;在emacs中我在哪里输入这个?所以您使用的是SML/NJ。我没有将Emacs与SML一起使用。如果有交互模式,只需在提示符处键入即可。如果您正在加载文件,只需将其放在文件顶部即可。实验<代码>控件.打印.打印深度:=60只是一个表达式--以与计算触发的值相同的方式对其进行计算
val it=[1,2,2,2,2,2,2,2,…]
非常感谢!我使用了Control.Print.printLength:=1024;在emacs的缓冲区中(我在这里评估我的函数),它现在可以工作:)