2011-01-08 6 views
2

私のPrologプログラムに問題があります。エラーが発生しているようですが、それは何かを知りません。誰かが私にそれを解決する方法を教えてもらえますか? 症状/ 2は、明示的な第2引数内の空白がある定義構文エラー:演算子が必要です

go:- 
    write('insert patient name'),nl, 
    read(Patient),nl,Patient=Patient, 
    hypothesis(Patient,Disease), 
    write(Patient),('probably has'),write(Disease),nl. 
go:- 
    write('sorry,the disease'),nl,write('cannot be diagnosed'),nl. 

symptom(Patient,abdominal pain):- 
    write('does'),write(Patient), 
    write('have abdominal pain y/n'),read(Reply), 
    Reply=y,nl. 
symptom(Patient,fever):- 
    write('does'),write(Patient),write('have a fever (y/)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,blood or mucus in stool):- 
    write('does'),write(Patient)write('have blood or mucus in stool(y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,nausea and vomiting):- 
    write('does'),write(Patient)write('have nausea and vomiting (y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,diarrhea):- 
    write('does'),write(Patient)write('have diarrhea (y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,leg cramp):- 
    write('does'),write(Patient)write('leg cramp(y/n)?'), 
    read(Reply), 
    Reply=y,nl.  
symptom(Patient,abdominal cramp):- 
    write('does'),write(Patient)write('have abdominal cramp(y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,cold skin):- 
    write('does'),write(Patient)write('have cold skin (y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,weak pulse):- 
    write('does'),write(Patient)write('have weak pulse(y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,voice change):- 
    write('does'),write(Patient)write('have voice change(y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,sea sickness):- 
    write('does'),write(Patient)write('have sea-sickness(y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,upset stomach):- 
    write('does'),write(Patient)write('have upset stomach(y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,feeling green around the gill):- 
    write('does'),write(Patient)write('have feeling green around the gill(y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,weakness):- 
    write('does'),write(Patient)write('have weakness(y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,flu like symptom):- 
    write('does'),write(Patient)write('have flu-like symptom(y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,fatigue):- 
    write('does'),write(Patient)write('have fatigue(y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,intestinal pain):- 
    write('does'),write(Patient)write('have intestinal pain(y/n)?'), 
    read(Reply), 
    Reply=y,nl. 
symptom(Patient,straining at stool):- 
    write('does'),write(Patient)write('have straining at stool(y/n)?'), 
    read(Reply), 
    Reply=y,nl. 

hypothesis(Patient,chorela):- 
    symptom(Patient,diarrhea), 
    symptom(Patient,vomiting), 
    symptom(Patient,leg cramp), 
    symptom(Patient,cold skin), 
    symptom(Patient,weak pulse), 
    symptom(Patient,voice change). 
hypothesis(Patient,gastroenteritis):- 
    symptom(Patient,vomiting), 
    symptom(Patient,nausea), 
    symptom(Patient,diarrhea), 
    symptom(Patient,sea sickness), 
    symptom(Patient,upset stomach), 
    symptom(Patient,feeling green around the gill), 
    symptom(Patient,abdominal pain), 
    symptom(Patient,weakness), 
    symptom(Patient,flu like symptom), 
    symptom(Patient,fatigue), 
    symptom(Patient,blood or mucus in stool). 
hypotesis(Patient,shigellosis):- 
    symptom(Patient,diarrihea), 
    symptom(Patient,fever), 
    symptom(Patient,nausea), 
    symptom(Patient,vominting), 
    symptom(Patient,abdominal pain), 
    symptom(Patient,intestinal pain), 
    symptom(Patient,straining at stool), 
    symptom(Patient,blood or mucus in stool). 
+1

コンパイラによって報告されたエラーの行と列を私たちと共有することはできますか?私は推測があまり好きではない。 – cdhowie

答えて

3

最初の行: エラーがここに私のコードですライン「症状」 から始まります。おそらく、あなたはそこに単一の原子「腹痛」があることを意味しましたが、パーサーは腹部と痛みの2つの原子を表示し、あなたが意味するものは分かりません。

を追加しました:同じ「組み込みブランク」エラーが症状/ 2のためにあなたの句の大半の頭の中に表示され、症状が呼び出され仮説/ 2のための条項の遺体インチまた、その述語の最終節にある「仮説」のスペルミスにも注意してください。

関連する問題