如何在Prolog中创建此规则?
我需要在Prolog中创建此规则的帮助 问题是: 为Prolog创建事实和规则如何在Prolog中创建此规则?,prolog,Prolog,我需要在Prolog中创建此规则的帮助 问题是: 为Prolog创建事实和规则 汉堡是一种食物 三明治是一种食物 比萨饼是一种食物 三明治是午餐 比萨饼是晚餐 每一种食物都是一顿饭,如果它是一种食物,那么任何东西都是一顿饭 这不是家庭作业,这是我自己的作业,我想知道如何正确地创建这个规则 food(burger). food(sandwich). lunch(sandwich). dinner(pizza). meal(X) :- food(X) ; ... 首先,把英语句子翻译成一阶
- 汉堡是一种食物
- 三明治是一种食物
- 比萨饼是一种食物
- 三明治是午餐
- 比萨饼是晚餐
- 每一种食物都是一顿饭,如果它是一种食物,那么任何东西都是一顿饭
food(burger).
food(sandwich).
lunch(sandwich).
dinner(pizza).
meal(X) :- food(X) ; ...
首先,把英语句子翻译成一阶逻辑句子
every food is a meal
=> forall X (food(X) -> meal(X))
然后,将一阶逻辑句翻译成Prolog Horn子句:
meal(X) :- food(X).
meal(X) :- food(X).
这是多余的,可以只写一次。每种食物都是一餐,如果是食物,任何东西都是一餐。说同样的话。
meal(X) :- food(X).
meal(X) :- food(X).