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.