0
byCar(auckland,hamilton).
byCar(hamilton,raglan).
travelSimple2:- write('Travel'),nl,
write('From where '),read(From),
write('To where '),read(To),
write('Using (car/train/plane) '),nl,
read(Transport),
travel(From,To,Transport).
travel(From,To,car):-byCar(From,To).
travel(From,To,car) :- travel(From,Step,car), travel(Step,To,car).
首先我問一個查詢:
| ?- travel(auckland,raglan,X).
的Prolog然後回答
X = car ;
但是當我問
| ?- travelSimple2.
Travel
From where |: auckland.
To where |: raglan.
Using (car/train/plane)
|: X.
它回答
yes
所以我的問題是,如何讓序言答案(X =汽車)之類的第一個查詢,而不是肯定的。 是否可以這樣做?我認爲命令是相似的,但爲什麼答案是不同的。
這樣只會總是打印「汽車」。我想要的是用戶必須輸入運輸,如果它是一個項目prolog將回答是/否,否則,如果它是一個變量prolog會告訴「汽車」。例如:X = car –
@MuAz,CapelliC有正確的想法。只需在'travelSimple2'謂詞的'travel'查詢之後加上'write(Transport),nl'即可。把'read(Transport)'留在你有的地方。 – lurker
你說得對....我應該那樣使用它 –