2

在 Prolog 中,您可以将基本事实编写为:

lost(jen).

您还可以将非基础事实写为:

lost(X).

这有什么意义吗?你能给我看一个使用非基本事实的实际/真实例子吗?

谢谢,

4

2 回答 2

3

另一种情况,避免列表,是大多数情况为“真”的情况,您只想排除一些错误的情况。所以你故意让那些案例失败,然后让其他一切都通过。

然后你可以做,说...

inhabited(antarctica) :- !, fail.

% all the other continents are inhabited
inhabited(_).
于 2009-11-12T23:08:34.370 回答
2

好吧,除了原子之外,您还可以拥有其他事实,例如,您可以拥有列表。完成此操作后,您可能想了解单元素列表,并且可以

oneelement([X]).

同样,假设您想比较列表中的最后一个元素是什么

lastelement([X],X).
lastelement([_|Remainder],X) :- lastelement(Remainder,X).

非常有用的member谓词定义为

member([X|_],X).
member([_|Remainder],X) :- member(Remainder,X).

其中每一个都使用非基础事实作为其基本情况,通过匹配一种比仅仅更具体的特殊形式lost(X)

于 2009-11-12T21:15:51.180 回答