【发布时间】:2013-11-25 04:14:46
【问题描述】:
所以我试图从 Prolog 中找出一些东西,但我不确定为什么我会得到我得到的结果。鉴于此定义:
families(_, Smith, lucy, _, jeff, Smith).
这个查询:
?- families(Ford, nancy, Ford, jeff, Smith, White).
为什么会这样?:
Ford = lucy,
Smith = jeff,
White = nancy.
谢谢!
【问题讨论】:
-
常量(所谓的原子)以小写字母开头。但有些名称以大写字母开头。将这些名称放在引号下。喜欢
'Smith' -
哦,我不是想得到不同的结果或任何东西。这是一个来自类的旧示例,我们在其中给出了定义和查询,我们假设在纸上找出结果。我输入了它以查看结果是什么,但我不确定为什么会这样。
-
这并不是说它失败了......“福特 = 露西,史密斯 = 杰夫,怀特 = 南希。”是结果。我把它全部输入到 swipl 来查看结果,但我不确定它为什么会这样。
-
您的问题中一定有错字。如前所述,您的查询将强制
Smith与nancy和jeff统一,这是不可能的。 -
@hardmath 我也失败了一分钟,但谓词中的变量are renamed on use。 :)(...我什至在那儿赞成你的评论):)
标签: prolog