これを試してください。
(* arg.sml *)
val args = CommandLine.arguments()
fun sum l = foldr op+ 0 (map (valOf o Int.fromString) l)
val _ = print ("size: "^Int.toString (length args)^"\n")
val _ = print ("sum: "^Int.toString (sum args)^"\n")
val _ = OS.Process.exit(OS.Process.success)
終了は重要です。それ以外の場合は、引数を拡張として扱う警告が表示されます。つまり、残りの引数をファイルとして解析しようとしますが、拡張子がsmlでないためコンパイラ拡張として扱われます。 MLtonでコンパイルされたプログラムで
$ sml arg.sml 1 2 3
Standard ML of New Jersey v110.74 [built: Thu Jan 10 18:06:35 2013]
[opening arg.sml]
[autoloading]
[library $SMLNJ-BASIS/basis.cm is stable]
[autoloading done]
size: 3
sum: 6
val args = ["1","2","3"] : string list
val sum = fn : string list -> int
、コマンドライン引数は簡単です:SML/NJで
$ mlton arg.sml
$ ./arg a b c
size: 3
sum: 6
それはcreate a standalone executableに口論のより多くのです。