【问题标题】:Increase print depth for lists in SML/NJ [duplicate]增加 SML/NJ 中列表的打印深度 [重复]
【发布时间】:2017-01-06 21:25:10
【问题描述】:

我正在使用 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 只是一个编辑器——您使用的是什么编译器?)。您可以更改打印长度(请参阅:stackoverflow.com/a/5079394/4996248,至少对于 SML/NJ),或者您可以编写自己的列表打印功能。 REPL 仅用于开发/调试。它通常会给你一个峰值——而不是完整的值本身(可能很大)。
  • V110.75 好的,我阅读了上面的内容,但不清楚将 Control.Print.printDepth:=60; 等命令放在哪里在 emacs 哪里输入这个?
  • 所以您使用的是 SML/NJ。我没有使用 Emacs 和 SML。如果有交互模式——只需在提示符处键入即可。如果您正在加载文件 - 只需将其放在文件顶部即可。实验。 Control.Print.printDepth:=60; 只是一个表达式 - 评估它的方式与评估触发 val it = [1,2,2,2,2,2,2,2,2,2,2,2,...] 的任何内容相同
  • 非常感谢!我使用 Control.Print.printLength := 1024;在 emacs 的缓冲区中(我评估我的函数),它现在可以工作了:)

标签: sml smlnj


【解决方案1】:

这就是圆点的原因吗?

是的。

【讨论】:

    猜你喜欢
    • 2011-06-30
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 2018-03-19
    • 2014-05-23
    • 2016-07-29
    相关资源
    最近更新 更多