我很不好意思在这里问一些基础问题,但是好像很难找到关于Prolog的好手册。
我有两个术语:
现在,我想要创建以下复合术语:
当我运行查询sisters(X,Y)时,我得到了这个混乱的结果: X = woman(_G2215), Y = woman(_G2217)
实际上,所有的东西都符合它。
但我想知道为什么第一种方法不起作用。
我有两个术语:
woman(alice).
woman(janice).
现在,我想要创建以下复合术语:
sisters(woman(X), woman(Y)).
当我运行查询sisters(X,Y)时,我得到了这个混乱的结果: X = woman(_G2215), Y = woman(_G2217)
实际上,所有的东西都符合它。
sisters(woman(david), woman(xxxxxx))
这也是正确的。
为什么它不能按照预期的方式工作?似乎,Prolog从不查看前两个术语。
我知道我应该这样做
sisters(X, Y) :- woman(X), woman(Y), X \= Y
但我想知道为什么第一种方法不起作用。