0

我知道它允许编写许多事实并创建一个可能性树 - 是否可以这样做:

我想根据规则返回真还是假来为列表添加值?

有人可以给我看一些可以解释这一点的小代码吗?

感谢

4

1 回答 1

2

假设您要生成一个包含所有凡人的列表。可以使用以下代码完成:

% facts  
human(victor).
human(peroni).
human(hugo).

% rule
mortal(X) :-
        human(X).

% add X to a list only if rule mortal(X) is true.
add(X,L,[X|L]) :-
        mortal(X).

例子

? add( victor, [hugo], Result).
Result = [victor, hugo].

? add( peroni, [], Result).
Result = [peroni].
于 2012-07-21T00:30:28.243 回答