gpt4 book ai didi

sml - 抑制标准 ML 中的 "val it"输出

转载 作者:行者123 更新时间:2023-12-02 04:26:55 24 4
gpt4 key购买 nike

我正在用标准机器学习 (SML/NJ) 编写一个“脚本”,根据我的喜好设置交互式环境。该脚本所做的最后一件事是打印一条消息,表明一切顺利。本质上,最后一行是这样的:

print "SML is ready.\n";

当我运行脚本时,一切顺利,但 SML 解释器显示 print 函数的返回值。

SML is ready.
val it = () : unit
-

由于我只是在屏幕上打印一些内容,如何抑制“val it = () : unit”输出,以便我看到的只是“SML 已准备好”消息,后面跟着解释器提示?

最佳答案

要禁止 SML-NJ 提示和响应,请使用以下分配。

Compiler.Control.Print.out := {say=fn _=>(), flush=fn()=>()};
print "I don't show my type";

I don't show my type

虽然我不明白为什么返回类型的 print 函数不好。

say 函数控制打印的内容。

以下 SML/NJ 注释中有一个更大的示例 http://www.cs.cornell.edu/riccardo/prog-smlnj/notes-011001.pdf

useSilently 函数可用于加载文件但不显示任何输出与加载相关

fun useSilently (s) = let
val saved = !Compiler.Control.Print.out
fun done () = Compiler.Control.Print.out := saved
in
Compiler.Control.Print.out := {say = fn _ => (), flush = fn () => ()}
(use (s); done ()) handle _ => done ()
end

这本质上是将 say 函数更改为不执行任何操作,然后在最后将其设置回来。

关于sml - 抑制标准 ML 中的 "val it"输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1265171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com