У меня небольшая проблема с упражнением Пролог.
Предположим, у меня есть список актеров, которые выиграли Оскара.Например:
(steven spielberg, steven spielberg, francis ford coppola, michael curtiz)
Когда имя появляется два раза, это означает, что человек выиграл 2 оскара и так далее.Что мне нужно сделать, так это пройти через этот список и найти каждого актера, который выиграл N или более Оскаров, с предикатом вроде
wonMoreOscars(Number, Activity):-
Где число - это N, которое мы должны сравнить со списком.У меня уже есть функция, которая подсчитывает человека, который встречается в списке больше раз, и активность, которую выполняет эта функция в фильме, но она уже описана.
Может кто-нибудь мне помочь, у меня есть код длянайдите человека, который получил больше Оскаров:
occS([],_,_,_,_):-write(0),nl,write('+'),nl, !.
occS([H|T],_,_,_,_):-occ([H|T],0,0,H,H).
occ([],_,Top,_,Nome):-write(Nome),nl,write(Top),nl,write('+'),nl, !.
occ([H|T],Count,Top,El_corrente,_):- compare(=,H,El_corrente),C is Count + 1,C>=Top,occ(T,C,C,El_corrente,El_corrente), !.
occ([H|T],_,Top,El_corrente,Nome):- not(compare(=,H,El_corrente)),occ(T,1,Top,H,Nome),!.
occ([H|T],Count,Top,_,Nome):- C is Count + 1,occ(T,C,Top,H,Nome), !.
Но теперь у меня проблемы с этим делом.