2017-06-02 75 views
1

我正在设置一个函数,它将模拟循环,直到满足条件。标准ml循环问题

我的总体计划是使用递归,但我试图首先获得基础知识。

我得到了一个基本的函数,使用If语句来查看X的值是什么。我打算使用递归来将X用作计数器,但我会在稍后讨论它。

我现在主要关心的是,看来我只能在“then”语句后执行1个命令。

fun whileloop (x,a) = 
    if (x<4) 
    then a+1 
    else a; 

所以这个函数工作得很好,但它似乎唯一的命令是我可以做的是a + 1。如果我在此之后尝试执行任何其他命令,则在其他之前...失败。

例如,下面的代码将会失败。

fun whileloop (x,a) = 
    if (x<4) 
    then a+1 
    print "Testing" 
    else a; 

我的最终目标是创建一个循环,一次又一次地执行几个动作,直到X达到零。我需要使用不同的功能执行5-6行动。

+0

如果您收到一个完整的答案,现在有后续问题,您应该问他们作为新问题。 – ruakh

+0

'a + 1'不是一个“命令”,并且实际上不执行任何操作。评估“a + 1”并放弃结果没有意义。 – ruakh

回答

0

您可以用分号符计算顺序几种表情:

(e1; e2; ...; eN) 

例如,

fun iter n f = if n = 0 then() else (f n; iter (n-1) f) 
+0

这有助于表达式是的,非常感谢。 – Busta