3、Prolog编程:规则与变量的运用

Prolog编程:规则与变量的运用

1. Prolog规则的引入

在Prolog中,当我们想要表达一个事实依赖于一组其他事实时,就会使用规则。例如,若要表示“John喜欢所有的人”,一种方式是为数据库中的每个人分别写下事实,如:

likes(john, alfred).
likes(john, bertrand).
likes(john, charles).
likes(john, david).

但如果数据库中有数百人,这种方法会变得很繁琐。另一种方式是使用规则,即“John喜欢任何对象,只要它是人”。在Prolog里,规则是一种更紧凑的表达方式。

在英语中,我们用“if”来表达规则,比如 “I use an umbrella if there is rain.” 或者 “John buys the wine if it is less expensive than the beer.” 。规则也可用于表达定义,例如:
- “X is a bird if: X is an animal, and X has feathers.”
- “X is a sister of Y if: X is female, and X and Y have the same parents.”

在这些定义中,我们使用了变量X和Y。需要注意的是,在一个规则中,变量无论出现在何处,都代表同一个对象。例如,在“鸟”的规则中,不能因为“Fido是动物”且“Mary有羽毛”就得出“Fred是鸟”的结论。在Prolog规则中,变量的解释也遵循同样的一致性原则。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值