なぜこれが動作していないのかわかりません...ここにコードがあります。Prolog - なぜメンバー/ 2はここで働いていないのですか?
cameToTheParty(date(15,9,2011), flor).
cameToTheParty(date(22,9,2011), marina).
cameToTheParty(date(15,9,2011), pablo).
cameToTheParty(date(22,9,2011), pablo).
cameToTheParty(date(15,9,2011), leo).
cameToTheParty(date(22,9,2011), flor).
cameToTheParty(date(15,9,2011), fer).
cameToTheParty(date(22,9,2011), mati).
cameToThePartyThatDay(Peoples, Date):-
bagof(X,cameToTheParty(Date,X),Peoples).
は私が
?- cameToThePartyThatDay(People,Day).
をしようとすると、それは私がしようとしたときのように、変数日付のフィールド、または実際の日付で、以下、
People = [flor, pablo, leo, fer], Day = date(15, 9, 2011) ; People = [marina, pablo, flor, mati], Day = date(22, 9, 2011).
を言います。しかし。 ..
member(X,cameToThePartyThatDay(People,date(15,9,2011))).
それだけで
虚偽を述べています。
[OK]を、おかげで、ので、どのようになる cameToThePartyThatDay(人、日付(15、 9,2011))。 は、SWI-prologのリストのようなものを返しますか? '>?cameToThePartyThatDay(人、日付(15,9,2011))。 > People = [flor、pablo、leo、fer]。 – newbie
@newbie返信を統一と混同していますか? '>?cameToThePartyThatDay(人、日付(15,9,2011))。 > People = [flor、pablo、leo、fer] .'は、 'cameToThePartyThatDay(People、date(15,9,2011)) 'は' People = [flor、pablo、leo、fer]のときに真です。 - それから、人々はリスト[flor、pablo、leo、fer]で統一されます。プロローグ述部は決して戻ってこない、成功するか失敗するかだけです。 –