2017-06-11 4 views
0

私は執筆中のスクリプトでほぼ完了していますが、私の機能に追加する最後の条件文が1つあります。標準ML複数条件文

fun whileloop (x:real,a:int,b:real) = 
    if (a<1) 
    then (x,a,b) 
    else whileloop(x+1.0,a-1,b-1.0) 

これは私が作成した私の現在のループです。私は1つの例外の下で必要なものすべてを基本的に達成しています。 b変数がゼロに達するとループを終了したい[これがaに達する前に起こった場合はゼロになる)。私はスタンダードMLがb < 1.0のような実際の変数のための条件ステートメントをさせないと信じています。当然の

fun whileloop (x:real,a:int,b:real) = 
    if (a<1 or b<1.0) 
    then (x,a,b) 
    else whileloop(x+1.0,a-1,b-1.0) 

このコードは、構文や条件文が原因で動作しません照らしてチェックされている:あなたに私が達成しようとしているかのアイデアを与えるために...私は、次のコードは、以下の仕事をしたいです実数です...しかし、私のスケルトンをやや損なわずにこのタスクを達成するにはどうすればいいですか?既存のスケルトンに別のif条件文を追加するだけです。 C++では、これはかなり簡単な作業でした。

+2

間違ったキーワードです。 'or' =>' orelse'です。その変更により、2番目の機能が期待通りに機能します。 –

+0

ありがとう、私はとても近かったことに気付かなかった! – Busta

答えて

1

ここに答えがあります。 John Colemanに感謝します。

fun whileloop (x:real,a:int,b:real) = 
    if (a<1 orelse b<1.0) 
    then (x,a,b) 
    else whileloop(x+1.0,a-1,b-1.0)