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规则中,变量的解释也遵循同样的一致性原则。
超级会员免费看
订阅专栏 解锁全文
47

被折叠的 条评论
为什么被折叠?



