SMLNJ REPL错误"!*无法处理..."

时间:2015-08-26 00:41:36

标签: smlnj

我在Mac OS X 10.9上使用SML NJ v110.78。我试图使用BASH的命令行参数,如下所示:

sml progname.sml 2.0 1.0.  

程序progname.sml编译并运行并使用命令行参数生成一个值(使用SMLofNJ.getArgs()函数),但在处理结束时,REPL返回错误:

!* unable to process `2.0' (unknown extension `0')
!* unable to process `1.0' (unknown extension `0')
-

如何避免这些最终错误消息?

谢谢。

1 个答案:

答案 0 :(得分:1)

您需要使用exit语句终止REPL:

val _ = OS.Process.exit(OS.Process.success);

当你不以上述方式退出REPL时,解释器将命令行参数视为编译器扩展,因此反馈:

!* unable to process `2.0' (unknown extension `0')

BTW:您可以使用OS.Process.exit(OS.Process.success);退出REPL,作为CTRL + Z的更清晰的替代方案

How do I quit SML?

ML Command Line Options Cheat Sheet