10

我在 Windows 上使用新泽西 SML。如果test.sml是 SML 文件,我可以通过在 Windows 命令提示符下运行它来执行它:

C:\> sml test.sml

然后我得到通常的 SML 输出和一个新的 SML 命令提示符。

Standard ML of New Jersey v110.75 [built: Sat Sep 29 12:51:13 2012]
[opening hw1.sml]
val d2 = (1,1) : int * int
val d3 = (1,1) : int * int
val d4 = (2,1) : int * int
val d5 = (1,2) : int * int
val x7 = true : bool
-

我想要的是退出回到 Windows 命令提示符,而不是留在 SML 交互模式。

我怎样才能做到这一点?

4

3 回答 3

22

你试过了吗:

sml <test.sml

除此之外,使用它的编译管理器 (CM) SML/NJ 实际上允许您将程序编译成二进制文件并单独运行它们。该手册应该能够告诉您更多信息(尤其参见第 15 节描述 ml-build 命令)。

于 2013-01-19T17:17:28.810 回答
5

以这种方式运行 SML/NJ,它将打开 REPL(读取-评估-打印-循环)。因此它会等待新的声明来解释,直到你告诉它退出。

根据 SML/NJ 关于使用的常见问题解答,然后

OS.Process.exit 函数是从程序中退出 sml 的正确方法。

它需要OS.Process.successOS.Process.failure作为参数。

于 2013-01-19T17:21:47.233 回答
1

您也可以从命令行:

Ctrl-C中断(如果循环不会退出等......)

Ctrl-Z退出 REPL

于 2018-06-10T02:59:11.480 回答