私はカードゲームをプログラムしようとしていると、いくつかの時点で、ユーザが要求されます:関数型プログラミングを使ってOCamlでループを回避する方法はありますか?
を「ゲームを開始するために、プレイヤーの名前やEXITを提出してください」そこで私は、ユーザまで、この質問をする必要があります"EXIT"を送信すると、ループを使わずにこれを行う方法があると言われています。
printf("Ingrese el nombre del jugador o EXIT para comenzar el juego");;
print_newline;;
let command = read_line;;
そしてそこに私は、ループ使用します:
は、これまでのところ私が持っていたすべてだった
while (command <> "EXIT") do
をしかし、関数型プログラミングを行っているとき、それは良くない助言されました。
ありがとうございます。
説明のビット。この機能(例外処理とのブレンドパターンマッチング)は、OCaml 4.02以降で利用可能になりました。 @ JeffreyScofieldはtail-recursiveバージョンを実装しているので、少し複雑に見えます。素敵な[ブログの投稿](https://blogs.janestreet.com/pattern-matching-and-exception-handling-unite/)はこれをすべて説明しています。 –
@AntonTrunov、このバージョンはまだテール再帰的です。 –
はい、私は@ Jeffreyのバージョンは、この比較的新しい機能を使用せずにテール再帰的なバージョンを実装すると言っているはずです:) –