J'essaie de comprendre comment utiliser la récursivité sur les règles de somme et de somme.Comment compter et additionner récursivement dans Prolog
Je le fais généralement avec des listes, en utilisant findall et length ou findall et sum_list, mais je ne suis pas sûr que ce soit ma meilleure option dans tous les cas.
Ceci est mon approche des listes:
%person(name, surname, age)
person('A', 'H', 22).
person('B', 'G', 24).
person('C', 'F', 20).
person('D', 'E', 44).
person('E', 'D', 45).
person('F', 'C', 51).
person('G', 'B', 40).
person('H', 'A', 51).
count_person(Total_count) :- % rule to count how many person are.
findall(N, person(N, _, _), List),
length(List, Total_count).
sum_ages(Total_sum) :- % rule to sum all the ages.
findall(Age, person(_, _, Age), List),
sum_list(List, Total_sum).
ou ici: https://swish.swi-prolog.org/p/cswl.pl
Comment dois-je faire cela en utilisant récursion?