Prolog 根据事实总结数据

Prolog 根据事实总结数据,prolog,prolog-findall,Prolog,Prolog Findall,(给定电影列表,编写序言规则以添加和显示总收入。) 这是我的问题,我基本上是想给下面列表中的电影列表加一个整数值。我对Prolog很陌生,我不太明白事情是如何运作的 takings(air_force_one,315000000). takings(american_beauty,336000000). takings(american_pie,201700000). takings(american_wedding,230700000). takings(armageddon,55460000

(给定电影列表,编写序言规则以添加和显示总收入。) 这是我的问题,我基本上是想给下面列表中的电影列表加一个整数值。我对Prolog很陌生,我不太明白事情是如何运作的

takings(air_force_one,315000000).
takings(american_beauty,336000000).
takings(american_pie,201700000).
takings(american_wedding,230700000).
takings(armageddon,554600000).
takings(as_good_as_it_gets,313300000).
takings(austin_powers_in_goldmember,289000000).
takings(babe,249000000).
takings(back_to_the_future,350600000).
takings(back_to_the_future_part_ii,332000000).
takings(back_to_the_future_part_iii,243700000).
takings(robots,245600000).
takings(hulk,241700000).
takings(bad_boys_ii,261900000).
到目前为止,我写的规则只适用于一部电影。 例如:

书面规则:

score([Movies], Money):-
    findall(Profit,(takings(Movies, Profit)), ListOfProfit),
    sum_list(ListOfProfit, Money).



相关询问递归答案。

提示:使用
[H | T]
作为模式,以统一列表的开头和结尾。我不知道在我的规则中在哪里实现这一点
score([Movies], Money):-
    findall(Profit,(takings(Movies, Profit)), ListOfProfit),
    sum_list(ListOfProfit, Money).