2017-10-31 17 views
0

私は、次の.plファイルを持っている:私はそれを実行すると、私は次のエラーを取得プロローグファイルでエラーが発生するのはなぜですか?

parent(Peter,Anne). 
parent(Peter,Mark). 

parent(Zara,Anne). 
parent(Zara,Mark). 


parent(Beatrice,Andrew). 
parent(Beatrice,Sarah). 

parent(Eugenie,Andrew). 
parent(Eugenie,Sarah). 


parent(Louise,Edward). 
parent(Louise,Sophie). 

parent(James,Edward). 
parent(James,Sophie). 

father(X,Y) :- male(Y),parent(Y,X). 
mother(X,Y) :- female(X),parent(X,Y). 
son(X,Y) :- male(X),parent(Y,X). 
daughter(X,Y) :- female(X),parent(Y,X). 
grandfather(X,Y) :- male(X),parent(X,Somebody),parent(Somebody,Y). 
aunt(X,Y) :- female(X),sister(X,Mom),mother(Mom,Y). 
aunt(X,Y) :- female(X),sister(X,Dad),father(Dad,Y). 
sister(X,Y) :- female(X),parent(Par,X),parent(Par,Y), X \= Y. 
uncle(X,Y) :- brother(X,Par),parent(Par,Y). 
cousin(X,Y) :- uncle(Unc, X),father(Unc,Y). 
ancestor(X,Y) :- parent(X,Y). 
ancestor(X,Y) :- parent(X,Somebody),ancestor(Somebody,Y). 
brother(X,Y) :- male(X),parent(Somebody,X),parent(Somebody,Y), X \= Y. 

を:

/home/cg/root/3832463/main.pg:4: warning: singleton variables [Peter,Anne] for parent/2 
/home/cg/root/3832463/main.pg:5: warning: singleton variables [Peter,Mark] for parent/2 
/home/cg/root/3832463/main.pg:7: warning: singleton variables [Zara,Anne] for parent/2 
/home/cg/root/3832463/main.pg:8: warning: singleton variables [Zara,Mark] for parent/2 
/home/cg/root/3832463/main.pg:11: warning: singleton variables [Beatrice,Andrew] for parent/2 
/home/cg/root/3832463/main.pg:12: warning: singleton variables [Beatrice,Sarah] for parent/2 
/home/cg/root/3832463/main.pg:14: warning: singleton variables [Eugenie,Andrew] for parent/2 
/home/cg/root/3832463/main.pg:15: warning: singleton variables [Eugenie,Sarah] for parent/2 
/home/cg/root/3832463/main.pg:18: warning: singleton variables [Louise,Edward] for parent/2 
/home/cg/root/3832463/main.pg:19: warning: singleton variables [Louise,Sophie] for parent/2 
/home/cg/root/3832463/main.pg:21: warning: singleton variables [James,Edward] for parent/2 
/home/cg/root/3832463/main.pg:22: warning: singleton variables [James,Sophie] for parent/2 
/home/cg/root/3832463/main.pg compiled, 36 lines read - 5049 bytes written, 10 ms 
warning: /home/cg/root/3832463/main.pg:1: user directive caused exception: error(existence_error(procedure,main/0),load/1) 
| ?- 
uncaught exception: error(syntax_error('user_input:1 (char:5) . or operator expected after expression'),read_term/3) 
| ?- 

それはどういう意味?

答えて

3

引数が大文字で始まる場合は、変数です。小文字の場合はアトムです。

変更:

parent(Peter,Anne). 
parent(Peter,Mark). 

へ:

parent(peter,anne). 
parent(peter,mark). 
+0

私は、クエリ 'SETOF実行してみました(孫(エリザベス、_)を、リスト).'リストを取得しますエリザベスの子どもたち全員のうち、私は 'uncaught exception:error(syntax_error( 'user_input:1(char:19)、or expected)'、read_term/3)'というレスポンスを返します。何かアドバイス? – tushariyer

+0

@tushariyer。別の質問をしてください... – repeat

+0

@tushariyer - 'setof'のアリティは何ですか?あなたがそれを見つけたら大きなヒントがあります。 – Enigmativity

1

人々の名前は通常、資産計上されます。大文字で始まるシンボルが可変であることから、あなたがそれらを引用符で囲む必要がありますプロローグで 、:

parent('Peter','Anne'). 
etc... 
関連する問題