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

时间:2013-01-19 16:54:23

标签: windows sml

我在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交互模式。

我该怎么做?

3 个答案:

答案 0 :(得分:12)

你有没有尝试过:

sml <test.sml

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

答案 1 :(得分:4)

以这种方式运行SML / NJ,它将打开REPL(read-eval-print-loop)。因此,它将等待新的声明解释,直到你告诉它退出。

根据usage上的SML / NJ常见问题解答,然后

  

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

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

答案 2 :(得分:0)

也可以从命令行:

Ctrl - C 中断(包含不会退出的循环等等)

Ctrl - Z 退出REPL