我正在学习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).