据我所知,它允许编写许多事实并创建可能性树 - 是否可以这样做:
我想根据规则是返回true还是false来为列表添加值?
有人可以告诉我一些可以解释这个问题的小代码吗?感谢
答案 0 :(得分: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].