prolog - 如何在 prolog 语句中表示一个句子

标签 prolog

问题如下:

在 Prolog 中表示以下内容:

1.布奇是个 killer 。

2 米娅和马塞勒斯结婚了。

3 泽德死了。

4 马塞鲁斯杀死了所有给米娅做足底按摩的人。

5 米娅喜欢所有优秀的舞者。

6 Jules 吃任何有营养或美味的东西。

我的答案是这样的,请大家帮我看看我的回答是对还是错。

  1. killer (巴克)。

2 已婚(mia、marsellus)。

3 人死亡(zed)。

4 次击杀(marsellus,X):-givesfootmassage(mia,X)。

5 爱(mia,X):-gooddancer(X)。

6 吃(jules,X):-营养(X);美味(X)。

非常感谢:)

最佳答案

您已将句子正确翻译为 Prolog。

但是您的命名约定使代码很难阅读!

良好的 Prolog 命名约定可以清楚地每个参数的含义

例如,让我们采用您的最后一个子句:

吃(jules, X) :- 有营养(X) ;美味(X)。

从上下文来看,很明显第一个参数是人,第二个参数是食物。一个好的谓词名称可以使这一点变得明确。

对比一下:

person_eats_food(jules, Food) :- 营养(Food) ;美味(食物).

我建议您再次检查每个翻译,并尽可能找到更好的名称。

关于prolog - 如何在 prolog 语句中表示一个句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34528692/

相关文章:

prolog - 如何在序言中找到所有普遍事实?

prolog - X\=Y 和 dif(X,Y) 的区别

Prolog:访问从父规则读取

list - 大于 X 的第一个元素的索引(Prolog)

prolog - 在Prolog中查找最大子列表

prolog - 这些在序言中是什么意思?

prolog - 读取文件,然后将其转换为序言中的列表

c++ - 在 dll 中嵌入 SWI-Prolog

prolog - 如何检查序言中的两个顶点是否连接?

list - 如何对 Prolog 列表的元素执行算术运算