Хорошо, я реализовал предикат show(Name,Grade).
, который работает следующим образом
?-show(Name,8).
Name=Jim;
Name=Ann;
false
?-show('Jim',Grade).
Grade=8;
false
Я хочу построить предикат worstGrades(Name,Grade)
, который найдет худшего ученика в классе, который каким-то образом реализует show(Name,Grade)
и нажав;
возвращает второго худшего ученика, затем третьего и т. Д., Как этот
?-worstGrades(Name,Grade).
Name=Bob,Grade=3;
Name=Max,Grade=5;
Name=Pete,Grade=5;
....
Я думаю, что решение связано с рекурсивным доступом к show(Name,Grade)
с переменной Grades в диапазоне (0,10), но я не могу придумать способ сделать это в настоящее время. Любая помощь?