在prolog中使用变量作为参数

在prolog中使用变量作为参数,prolog,Prolog,我正在尝试使用Prolog(amzi)创建一个自动售货机逻辑,但是处理参数非常困难。到目前为止,我有: drink(soda,1). drink(coffee,4). drink(tea,3). drink(mango,7). drink(apple,5). machine:- write('choose a drink: pepsi, coffee, tea, mango'), nl, read(X), nl, drink(X,C). 我得到的结果是: ?-

我正在尝试使用Prolog(amzi)创建一个自动售货机逻辑,但是处理参数非常困难。到目前为止,我有:

drink(soda,1).
drink(coffee,4).
drink(tea,3).
drink(mango,7).
drink(apple,5).

machine:-
   write('choose a drink: pepsi, coffee, tea, mango'),
   nl,
   read(X),
   nl,
   drink(X,C).
我得到的结果是:

?- machine.
choose a drink: pepsi, coffee, tea, mango
mango.

yes
在我输入饮料名称后,我想知道饮料的价格,关于如何处理这个问题有什么建议吗


p、 在查询的开头输入饮料的名称是不符合逻辑的,因为客户应该看到列表,然后选择一种饮料

你只要把它写出来就行了。用户输入
mango
后,您进行了
读取
操作,之后您再也没有进行
写入
s操作。所以在喝了(X,C)之后,只要做,
write('Cost of'),write(X),write('is'),write(C),nl.
。或者使用
format
命令(您可以查找)。非常感谢,问题解决了。