3

このウェブサイトの質問に答えようとして、ほぼ初めて ocaml で命令型コードを書こうとしていますが、ちょっとした問題に直面しています。

let f() =
try
  while true do
    ()
  done
with
    _ -> 2

彼は、この関数が try ブロックにあるように unit を返すが、try ブロックは int を返すと考えているため、これが好きではありません。したがって、「完了」の後に 3 を追加すると機能しますが、実際には 3 が返されないため、非常に見苦しくなります。

これどうやってやるの ?

4

2 に答える 2

7

Use assert false、常に例外を発生させるため、任意の型が期待される場所で使用できます。

f() = とする
  試す
    本当のことをしている間
      ()
    終わり;
    偽を主張する
  と
      _ -> 2
于 2013-08-13T05:21:20.383 に答える