2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 [Prolog] поиск общих элементов в списках
Сообщение08.01.2007, 10:32 
Аватара пользователя
дано два списка. найти элементы списка 1, принадлежащие списку 2.
то есть
?-pred([2,5],[3,4,5,2],L).
L->[5,2]


не могу найти баг
Код:
member([],_,[]).
member([H|T],[H|T1],[H|Y]):-member(T,[H|T1],Y).
member([R|T],[H|T1],[Z|Y]):-member(T,[H|T1],[Z|Y]).
pred([],_,[]).
pred([N|M],[G|V],[L|K]):-
member([N|M],[G|V],L),
pred([N|M],V,K).
pred([N|M],[G|V],[L|K]):-pred([N|M],V,K).

 
 
 
 
Сообщение08.01.2007, 19:51 
Аватара пользователя
Это стандартная задача - пересечение множеств, откройте любое руководство по Прологу или Лиспу, она там расписана. Вы должны еще учесть, что нужно исключить ситуацию, когда в одном из списков несколько одинаковых элементов - иначе непонятно, сколько их добавлять в результат.

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group