Prolog从知识库中检索数据和算术运算

Prolog从知识库中检索数据和算术运算,prolog,Prolog,嗨,这是我在复习一些问题集时遇到的一个问题。知识库包含以下信息: 船(船号、船名、颜色、每位乘客的票价) 问题是写一个程序来做以下事情 获取船舶识别号以及每艘船舶的票价 旅客人数增加了5% 我写的程序是 boat(BID,_,_,F), F is F*1.05. Prolog一直在给我回复一条消息,说错误有什么想法吗?这个问题的答案是 boat(BID,_,_,F), Nfare is F*1.05. 问题是在算术运算中也使用了相同的变量 丹尼尔·莱昂斯提到这一点值得称赞。这个问题的答案是

嗨,这是我在复习一些问题集时遇到的一个问题。知识库包含以下信息:

船(船号、船名、颜色、每位乘客的票价)

问题是写一个程序来做以下事情

获取船舶识别号以及每艘船舶的票价 旅客人数增加了5%

我写的程序是

boat(BID,_,_,F), F is F*1.05.

Prolog一直在给我回复一条消息,说错误有什么想法吗?

这个问题的答案是

boat(BID,_,_,F), Nfare is F*1.05.
问题是在算术运算中也使用了相同的变量


丹尼尔·莱昂斯提到这一点值得称赞。

这个问题的答案是

boat(BID,_,_,F), Nfare is F*1.05.
问题是在算术运算中也使用了相同的变量


感谢Daniel Lyons提到这一点。

您不能在Prolog中更改变量。使用F以外的东西,其中F是
F是
F是F*1.05
在Prolog中表示
F
的值与
F*1.05
的值相同,这显然总是错误的,除非
F
的值是
0
。不能在Prolog中更改变量。使用F以外的东西,其中F是
F是
F是F*1.05
在Prolog中表示
F
的值与
F*1.05
的值相同,这显然总是错误的,除非
F
的值是
0
.1
nFare
不是有效的Prolog变量名,因为它不是以大写字母开头的。所以这是行不通的。2.我的姓没有两个o
nFare
不是有效的Prolog变量名,因为它不是以大写字母开头的。所以这是行不通的。2.我的姓没有两个o。