Как создать новый список из исходного списка без дублирования с помощью пролога

#list #problog

Вопрос:

Это программа пролога. ..Перечислите имена 3 студентов, имеющих наивысшую оценку (являются студентами a,e,b).

Я пытался сделать это. но это создает дубликат для ученика «а». Пожалуйста, помогите мне.

 student(a,5).  student(b,3).  student(c,2).  student(d,3).  student(e,5).  listA([5,5,3]) % List 3 student have highest time.    list_name([],[]). list_name([H|T], [D|L]):-         student(D,H),         list_name(T,L).