2017-06-02 76 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