我知道它允许编写许多事实并创建一个可能性树 - 是否可以这样做:
我想根据规则返回真还是假来为列表添加值?
有人可以给我看一些可以解释这一点的小代码吗?
感谢
假设您要生成一个包含所有凡人的列表。可以使用以下代码完成:
% 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].