【发布时间】:2014-11-24 17:12:27
【问题描述】:
我有一个包含 5 个成员的数据库,其中包含收入属性。我想总结所有成员的收入。 为此,我想创建一个收入列表并添加它们。
为了创建收入列表,我将附加谓词编写为
append(Element, List, OutputList)
这会将元素添加到列表中并在输出列表中返回它。
现在我想把每个成员的收入放到一个列表中,并添加列表的元素。 但我无法将所有元素都放在列表中。你能帮我创建这两个谓词吗? 这是我写的代码。
member(a,2).
member(b,1).
member(c,2).
member(d,3).
member(e,1).
append([],L,L).
append(Elem,L,X):- append([],[Elem|L],X).
% this add predicate is incorrect
add(L,X) :- member(_,Income),append(Income,L,L),X is L.
我想将输出列表生成为 [2,1,2,3,1] 并将它们相加得到 2+1+2+3+1 = 9。
【问题讨论】:
-
你想让你的
add做什么?并注意member和append名称。这些可以是内置谓词的名称。
标签: list prolog logic predicate