我正在尝试用 SML 编写一个程序,该程序将从用户那里读取一系列/列表/数字序列,处理数字并输出结果。我不知道用户会输入多少个数字。程序既可以读入所有数字并一起输出结果,也可以一次读取并输出一个。我不在乎输入是在单独的文件中还是在控制台手动输入。
我需要做什么才能读取输入?
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;
对令人费解的转换感到抱歉。如果您还知道一种更简单的读取整数的方法,我也将不胜感激。