0
PROLOG: 「構文エラー: 演算子が必要です」
エラー: c:/users/zulfekarali/Desktop/KBS/kbs.pl:2:3: 構文エラー: 演算子が必要です
% c:/Users/ZulfekarAli/Desktop/KBS/kbs.pl コンパイル 0.00 秒、27 節

--------

ドメイン
    疾患、適応症=記号
    患者、名前 = 文字列

述語
    仮説(文字列,疾患)
    症状(名称、適応症)
    レスポンス(文字)
    行く
条項
    行く :-
        write("患者の名前は? "),
        readln(患者),
        仮説(患者,疾患),
        write(Patient,"おそらく",Disease,"."),nl.

    行く :-
        write("すみません、できないようです"),nl,
        write("病気を診断します。"),nl.

    症状(患者、発熱):-
        write("",Patient," さんは熱がありますか (y/n) ?"),
        応答(返信)、
        返信='y'.

    症状(患者、発疹) :-
        write("",Patient," には発疹がありますか (y/n) ?"),
        応答(返信)、
        返信='y'.

    症状(患者、頭痛) :-
        write("",Patient," さんは頭が痛いですか (y/n) ?"),
        応答(返信)、
        返信='y'.

    症状(患者、鼻水) :-
        write("",Patient," には鼻水がありますか (y/n) ?"),
        応答(返信)、
        返信='y'.

    症状(患者、結膜炎) :-
        write("",Patient," さんは結膜炎ですか (y/n) ?"),
        応答(返信)、
        返信='y'.

    症状(患者、咳) :-
        write("",Patient," さんは咳をしていますか (y/n) ?"),
        応答(返信)、
        返信='y'.

    症状(Patient,body_ache) :-
        write("",Patient," には体の痛みがありますか (y/n) ?"),
        応答(返信)、
        返信='y'.

    症状(患者、悪寒) :-
        write("",Patient," さんは悪寒がありますか (y/n) ?"),
        応答(返信)、
        返信='y'.

    症状(患者、喉の痛み) :-
        write("",Patient," には喉の痛みがありますか (y/n) ?"),
        応答(返信)、
        返信='y'.

    症状(患者、くしゃみ) :-
        write("",Patient," さんはくしゃみをしますか (y/n) ?"),
        応答(返信)、
        返信='y'.

    症状(患者、腫れ_腺) :-
        write("",Patient," には腫れた腺がありますか (y/n) ?"),
        応答(返信)、
        返信='y'.

    仮説(患者、はしか) :-
        症状(患者、発熱)、
        症状(患者、咳)、
        症状(患者、結膜炎)、
        症状(患者、鼻水)、
        症状(患者、発疹)。

    仮説(患者、ドイツのはしか) :-
        症状(患者、発熱)、
        症状(患者、頭痛)、
        症状(患者、鼻水)、
        症状(患者、発疹)。

    仮説(患者、インフルエンザ) :-
        症状(患者、発熱)、
        症状(患者、頭痛)、
        症状(Patient,body_ache),
        症状(患者、結膜炎)、
        症状(患者、悪寒)、
        症状(患者、のどの痛み)、
        症状(患者、鼻水)、
        症状(患者、咳)。    

    仮説(患者、一般的な風邪):-
        症状(患者、頭痛)、
        症状(患者、くしゃみ)、
        症状(患者、のどの痛み)、
        症状(患者、鼻水)、
        症状(患者、悪寒)。

    仮説(患者、おたふく風邪) :-
        症状(患者、発熱)、
        症状(患者、腫れ_腺)。

    仮説(患者、鶏痘) :-
        症状(患者、発熱)、
        症状(患者、悪寒)、
        症状(Patient,body_ache),
        症状(患者、発疹)。

    仮説(患者、はしか) :-
        症状(患者、咳)、
        症状(患者、くしゃみ)、
        症状(患者、鼻水)。

    応答(返信) :-
        readchar(返信),
        書き込み(返信)、nl。

4

2 に答える 2

1

あなたが提供したコードは、いくつかの理由により無効な SWI-Prolog コードです。

1

が最初に出現する前に、コメントされていないフリー テキストが既に観察されている出現go:-

2

述語write/[3,4]は SWI-Prolog には存在しません。

3

ライブラリ に述語readln/1が存在しますreadln。このモジュールは自動ロードされ:- use_module(library(readln)).ますが、ファイルの先頭で宣言を使用して依存関係を明示することをお勧めします。

さらに重要なことは、readln/1リストを返しますが、リストhypothesis/2以外symptom/2の入力を予期しているようです。

4

アトムreadln/1である要素と文字列であるその他の引数との間に不一致があります。write/[3,4]

于 2014-04-04T21:54:52.383 に答える