2016-08-04 11 views
0

Erlangを初めて使用しました。Erlang:ユーザーが終了を選択するまでプロンプトを表示

しかし私の問題は、「終了」ボタンを入力するまでユーザーにプロンプ​​トを表示し続ける関数を作成する方法を理解できないようです。

私は、ユーザーが「4」と入力した場合に終了するだろうと思ったが、私は間違っていると思っている以下の非常に簡単なプログラムを作った:

reprompt() -> 
    {ok, X} = io:fread("Prompt>", "~s"), 
    case X of 
    4 -> io:format("exit"); 
    _ -> reprompt() 
    end. 

私は他のバリエーションを試してみたが、のほとんどが同じかを追いました類似のパターン。

提案がありますか?

答えて

1

io:fread/2リストを返します。形式が"~s"の場合、1つの文字列を含むリストが返されます。あなたはXに入力する単一の番号が必要な場合は、行うことができます:ユーザが番号以外のものを入力した場合、これがクラッシュすること

{ok, [X]} = io:fread("Prompt>", "~d"), 

注意を。 case式を使用し、{ok, [X]}{error, Reason}の句を追加する必要があります。

+0

はい、そのすべてが修正されました。時にはそれは人生の中の小さなものです。ありがとうございました。 – Mascasc

関連する問題