有没有办法说∃!在prolog?

时间:2013-04-06 19:21:56

标签: prolog boolean boolean-logic boolean-expression

在prolog中,有没有办法说"只有一个" (∃!)? 我在想做像

这样的事情
% a predicate which is proven true if there is only one tall person
only_one_tall() :- is_tall(X), is_tall(Y), X\=Y.

然后否定整个事情。 但我认为这不起作用。

有人知道吗?

感谢。

1 个答案:

答案 0 :(得分:2)

产生类似标准Prolog中的条件的一种方法如下:

only_one_tall() :- findall(X, is_tall(X), List), length(List, 1).

这是demo on ideone