说我在Prolog中有两个'表',例如:
item_value('Chair', 50).
item_value('Table', 100).
item_value('Plant', 75).
还有一个:
shopping_cart('Max', ['Chair', 'Chair', 'Table']).
shopping_cart('Sam', ['Plant', 'Table']).
我现在想编写一个谓词,用于计算购物车内商品的总和,例如 total_sum(人,总和)
我该怎么做?我无法在Prolog中对此进行编码 提前谢谢!
答案 0 :(得分:0)
请尝试以下代码:
item_value('Chair', 50).
item_value('Table', 100).
item_value('Plant', 75).
shopping_cart('Max', ['Chair', 'Chair', 'Table']).
shopping_cart('Sam', ['Plant', 'Table']).
total_sum(Person, Sum) :-
shopping_cart(Person, ItemList),
maplist(item_value, ItemList, CostList),
foldl(plus, CostList, 0, Sum).