标准 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)