Exerciții Model parțial, Exercițiul 3

sort_employee_average_salary/2

Model parțial, Exercițiul 3 advanced Predicate predefinite pe listeRecursivitate pe liste

Primind o listă identică celei de la Exercițiul 2, în lista de rezultat ordonați angajații după salariul mediu câștigat, în ordine descrescătoare.

?- sort_employee_average_salary([employee_salary(peter, 1000), employee_salary(oliver, 1200),
                                  employee_salary(sam, 700), employee_salary(oliver, 800),
                                  employee_salary(sam, 900), employee_salary(sandra, 4500),
                                  employee_salary(peter, 1200), employee_salary(oliver, 400)], Result).
Result = [(sandra, 4500), (peter, 1100), (oliver, 800), (sam, 800)]

Hint: folosește predsort/3 cu un comparator custom care compară salariile în ordine inversă. Vezi Predicate predefinite pe liste.

Te-ai blocat?
editor soluție
?-
Tastează o interogare (ex. father_of(sandra, X).) și apasă Enter — sau apasă pe un caz de test de mai jos.
Cazuri de test (1 — apasă pe unul ca să îl rulezi, sau Verifică pentru toate)
?
sort_employee_average_salary([employee_salary(peter,1000), employee_salary(oliver,1200), employee_salary(sam,700), employee_salary(oliver,800), employee_salary(sam,900), employee_salary(sandra,4500), employee_salary(peter,1200), employee_salary(oliver,400)], R). așteptat: R = [(sandra,4500.0),(peter,1100.0),(oliver,800.0),(sam,800.0)]