2017-06-02 6 views
1

私は条件が満たされるまでループをシミュレートする関数を設定しています。標準mlループのトラブル

私の全体的な計画は再帰を使用することですが、まず基礎を下ろそうとしています。

私は、Xの値が何であるかを見ているIfステートメントを使って作業する基本的な関数を得ました。私はカウンタとしてXを使うために再帰を使うつもりですが、後でそれに着きます。

私の主な関心事は、私は「then」ステートメントの後に1つのコマンドしか実行できないようです。

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

この機能は完全にうまく機能しますが、私ができるのはa + 1だけです。それ以降に他のコマンドを実行しようとすると、elseの前に...失敗します。

たとえば、以下のコードは私にとっては失敗します。

私の究極の目標は、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

関連する問題