2016-09-15 2 views

答えて

2

OCamlにはbreakおよびreturnはありません。だから私は丁重にwhile true do ... doneと書いてほしくないとお勧めします。

ループを終了すべき条件がある(私が疑われるような)場合は、あなたが書くことができます。

while not <condition> do 
    . . . 
done 

次のラインに沿って再帰関数を記述する場合、それは多くの場合、あなたに多くの慣用的なコードを提供します:

let rec loop a b c = 
    if condition a b c then 
     () 
    else 
     let (a', b', c') = do_something a b c in 
     loop a' b' c' 
+0

私は出口0でループを中断します。私はブレークまたはリターンする必要はありません。これは、シンプルな入力を受け取り、テキストベースの出力で応答するコマンドプロンプトスタイルのインターフェイスを意味します。 –

+0

これで、 'true do ... done'と書くことができます。 –

+0

@JeffreyScofield 3番目のオプションは、無限ループと出口0の間にあり、例外を発生させることです。 – coredump

関連する問題