このディレクトリの索引 http://hibari.2ch.net/test/read.cgi/tech/1286706874/390 # Haskellで、対話的なプログラムってどんな感じになりますか? # 手続き的に書くと # # 1. 入力を促すメッセージを表示 # 2. キーボードから文字列を入力 # 3. 特定の文字列or文字列終端が入力されると終了 # 4. 入力された文字列に関数を適用 # 5. 適用した結果を表示 # 6. 最初に戻ってループ # # な感じのプログラムなんですが… # 'Prologで、対話的なプログラム' :- 入力を促すメッセージを表示, キーボードから文字列を入力(_入力文字列), キーボードから文字列を入力(_入力文字列,_入力文字列ならび), concat_atom(_入力文字列ならび,'\n',_対象文字列), 負節実行(_対象文字列,_項), 適用した結果を表示(_項). 'Prologで、対話的なプログラム' :- 'Prologで、対話的なプログラム'. キーボードから文字列を入力(_入力文字列,[]) :- 特定の文字列or文字列終端が入力されると終了(_入力文字列),!. キーボードから文字列を入力(_入力文字列,[_入力文字列|R]) :- 入力を促すメッセージを表示, キーボードから文字列を入力(_入力文字列の二), キーボードから文字列を入力(_入力文字列の二,R). 入力を促すメッセージを表示 :- 入力を促すメッセージ(_入力を促すメッセージ), write('入力を促すメッセージ'). キーボードから文字列を入力(_入力文字列) :- get_line(_入力文字列). 特定の文字列or文字列終端が入力されると終了(end_of_file). 負節実行(_対象文字列,_項) :- atom_to_term(_対象文字列,_項,_), call(_項). 適用した結果を表示(_項) :- write_formatted('%q\n',[_項]).