Prolog:计算唯一项目的数量

时间:2017-12-06 00:38:29

标签: prolog

我正在学习Prolog。我正在计算评论帖子的人数。我有一些这样的数据:

%comment(name, post id, message)
comment(ellen, p3, 'Love it!').
comment(ellen, p3, 'How does it feel?').
comment(john, p3, '?!').

我使用了findall,但我只能计算评论数量。然后结果将包含重复的名称。

count_comment(Post, Total) :- findall(_,comment(Name,Post,_),Comments), 
                              length(Comments, Total).

无论如何,我可以计算评论帖子的人数吗?

解决:

count_comment(Post, Total) :- findall(Name,comment(Name,Post,_),Names), list_to_set(Names, Unique_names), length(Unique_names, Total).

0 个答案:

没有答案