标准 ml 循环问题
Standard ml loop troubles
我正在设置一个函数来模拟循环,直到满足条件。
我的总体计划是使用递归,但我试图先了解基础知识。
我得到了一个使用 If 语句的基本函数,该函数查看 X 的值是什么。我计划使用递归来使用 X 作为计数器,但我稍后会讲到。
我现在主要担心的是,似乎我只能在 "then" 语句之后执行 1 个命令。
fun whileloop (x,a) =
if (x<4)
then a+1
else a;
所以这个函数工作得很好,但似乎我唯一能做的命令就是 a+1。如果我在那之后尝试执行任何其他命令,在 else 之前...它会失败。
例如,下面的代码对我来说会失败。
fun whileloop (x,a) =
if (x<4)
then a+1
print "Testing"
else a;
我的最终目标是创建一个循环,该循环将一遍又一遍地执行多个操作,直到 X 达到零。我需要使用不同的函数执行 5-6 个动作。
您可以使用分号运算符按顺序计算多个表达式:
( e1; e2; ...; eN )
例如,
fun iter n f = if n = 0 then () else (f n; iter (n-1) f)
我正在设置一个函数来模拟循环,直到满足条件。
我的总体计划是使用递归,但我试图先了解基础知识。
我得到了一个使用 If 语句的基本函数,该函数查看 X 的值是什么。我计划使用递归来使用 X 作为计数器,但我稍后会讲到。
我现在主要担心的是,似乎我只能在 "then" 语句之后执行 1 个命令。
fun whileloop (x,a) =
if (x<4)
then a+1
else a;
所以这个函数工作得很好,但似乎我唯一能做的命令就是 a+1。如果我在那之后尝试执行任何其他命令,在 else 之前...它会失败。
例如,下面的代码对我来说会失败。
fun whileloop (x,a) =
if (x<4)
then a+1
print "Testing"
else a;
我的最终目标是创建一个循环,该循环将一遍又一遍地执行多个操作,直到 X 达到零。我需要使用不同的函数执行 5-6 个动作。
您可以使用分号运算符按顺序计算多个表达式:
( e1; e2; ...; eN )
例如,
fun iter n f = if n = 0 then () else (f n; iter (n-1) f)