运行SML文件但不能保持交互模式

rla*_*ter 7 windows sml

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

C:\> sml test.sml
Run Code Online (Sandbox Code Playgroud)

然后我得到通常的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
-
Run Code Online (Sandbox Code Playgroud)

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

我怎样才能做到这一点?

And*_*erg 14

你试过了吗:

sml <test.sml
Run Code Online (Sandbox Code Playgroud)

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


Jes*_*erg 5

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

根据 SML/NJ faq on using,然后

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

它采用两种OS.Process.successOS.Process.failure作为参数。