2012-07-20 114 views
0

我明白它允许写了很多事实和可能性树created-是有可能做到这一点:根据规则添加元素列表?

我想增加价值取决于规则是否返回true或false名单?

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

谢谢

+1

请[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting回答工作)到你以前的问题。这些写作答案被认为是礼貌的。 – 2012-07-20 22:56:49

回答

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].