list_sum/2 — suma elementelor
Scrieți un predicat list_sum/2 care să calculeze suma elementelor din lista primită ca prim argument.
?- list_sum([1, 2, 3], X).
X = 6
Hint: același tipar ca la
list_length, doar că acumuleziH + SumTailîn loc de1 + LengthTail.
Te-ai blocat?
editor
soluție
list_sum([], 0).
list_sum([H | T], Sum) :-
list_sum(T, SumTail),
Sum is SumTail + H.
?-
Tastează o interogare (ex. father_of(sandra, X).) și apasă Enter — sau apasă pe un caz de test de mai jos.
Cazuri de test (3 — apasă pe unul ca să îl rulezi, sau Verifică pentru toate)
?
list_sum([1, 2, 3], X).
așteptat: X = 6
?
list_sum([], X).
așteptat: X = 0
?
list_sum([10, -3, 5], X).
așteptat: X = 12