% 定义权重函数:将每一项映射为其权重
weight(apple, 1).
weight(orange, 2).
weight(banana, 3).
% 计算列表中所有项的权重之和
sum_weights([], 0). % 空列表的权重之和为0
sum_weights([Item | Rest], Total_weight) :-
weight(Item, Item_weight), % 获取该项的权重
sum_weights(Rest, Rest_weight), % 计算其余项的权重之和
Total_weight is Item_weight + Rest_weight. % 总权重为当前项权重加上其余项权重之和
% 示例:
% ?- sum_weights([apple,orange,banana],Weight).
% Weight = 6