我在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')
-
如何避免这些最终错误消息?
谢谢。
答案 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的更清晰的替代方案