私は単語計算機をしようとしています..ファイルから単語を読みます..それらを数字に翻訳してから結果を計算します..私はそれをすべて行うことができましたが、私のプログラムには2つのバグがあると思います..
私は主に2つの機能を持っています...
extract(Words)、calculate(Words、0)。
extractはファイルから読み取り、単語のリストを返します..例:[one、plus、three] ..ここで、calculateはこれらの単語の値を数値に変換し、計算します..私もそれを行うことができました。 。現在のバグは次のとおりです。ファイルでstopが発生した場合は、読み取りを停止して終了する必要があります。したがって、Wordsが[stop]Endの場合は終了します。私は次のことを試しました...
execute :-
extract(Words),
Words = [stop],nl,print('Terminating ...'),!.
execute :-
extract(Words),
calculate( Words,0).
正常に終了します..しかし、複数回抽出するため、行をスキップします..実行しようとしました..
execute :-
extract(Words),
Words \= [stop],execute(Words).
execute(Words) :-
calculate( Words,0).
言葉が止まらない場合は..それから行って計算してください..しかしそれは機能していません!!
私は助けに感謝します..ありがとう