prolog在read命令中输入未知变量

prolog在read命令中输入未知变量,prolog,Prolog,我有: 首先,我提出一个问题: 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,

我有:

首先,我提出一个问题:

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).
但是当我问

X = car ;
它回答

| ?- travelSimple2.
Travel
From where |: auckland.
To where |: raglan.
Using (car/train/plane) 
|: X.
因此,我的问题是如何使prolog答案(X=car)像第一个查询一样,而不是像yes一样。 有可能吗?我认为命令是类似的,但为什么答案是不同的

我想应该是

yes

这种方式只能打印“汽车”。我想要的是用户必须输入传输,如果它是一个项目,prolog将回答是/否,否则如果它是一个变量,prolog将告诉“car”。例:X=car@MuAz他有正确的想法。只需在
travelSimple2
谓词中的
travel
查询之后添加一个
write(Transport),nl
。将
read(Transport)
留在您的位置。
travelSimple2:- write('Travel'),nl,
                write('From where '),read(From),
                write('To where '),read(To),
                write('Using (car/train/plane) '),nl,
                travel(From,To,Transport),
                write(Transport),nl.