从Findall生成的列表中删除重复项

时间:2014-01-04 18:51:23

标签: list email prolog duplicates prolog-findall

我正在练习Prolog,想出一个非常简单的数据库,说明谁发送和接收了电子邮件。

我使用预先指定的findall的接收者X创建了一个列表。

1 个答案:

答案 0 :(得分:2)

使用你的清单/ 2:

all_receivers(X,Uniques) :- findall(Y,(email(X,Y)),List),list(List,Uniques).

但最简单的方法是sort / 2,或者更好的setof / 3

all_receivers(X,List) :- setof(Y,X^(email(X,Y)),List).
相关问题