ユーザーから一連/リスト/シーケンスの数字を読み取り、数字を処理し、結果を出力するプログラムを SML で作成しようとしています。ユーザーがいくつの数字を入力するかわかりません。プログラムは、すべての数値を読み取って結果をまとめて出力することも、一度に 1 つずつ読み取って出力することもできます。入力が別のファイルにあるか、コンソールで手動で入力されているかは気にしません。
入力を読み取るにはどうすればよいですか?
fun fact x = if x<2 then 1 else x*fact(x-1);
let val keepgoing:bool ref = ref true in
while !keepgoing do
let val num = valOf(TextIO.inputLine TextIO.stdIn) in
print( Int.toString( fact( valOf( Int.fromString( num ) ) ) ) );
keepgoing := (null(explode(num)))
end
end;
複雑な変換については申し訳ありません。整数を読み取る簡単な方法も知っていれば、それもありがたいです。