/* Задача для отладки 1 */ 'присоединить'([],L,L). 'присоединить'([A|L1],L2,[A|L3]):-'пpисоединить'(L1,L2,L3). 'обращение'([],[]). 'обращение'([A|L1],L2):-'обращение'(L1,L2),'присоединить'(L1,[A],L3). /* Запуск теста */ tst1:-'обращение'([1,2,3,4],L),write('L='),write(L),nl.
/* Задача для отладки 2 */ 'пpинадлежит'([X|_],X). 'принадлежит'([_|L],X):-'принадлежит'(L,X). 'подмножество'([],_). 'подмножество'([H|T],L):-'принадлежит'(L,H),'подмножество'(L,T). /* Запуск теста (должен быть ответ yes) */ tst2:-'подмножество'([2,4],[1,2,3,4]).
/* Задача для отладки 3 */ 'присоединить'([],L,L). 'присоединить'([A|L1],L2,[A|L3]):-'пpисоединить'(L1,L2,L3). 'перестановка'([],[]). 'перестановка'([A|L1],L5):- 'перестановка'(L1,L2), /* переставляем хвост всеми способами */ /* вставляем всеми способами голову в получившийся список */ 'присоединить'(L2,L3,L4),'присоединить'(L3,[A|L4],L5). /* Запуск теста */ tst3:-'перестановка'([1,2,3,4],L),write('L='),write(L),nl,fail.
/* Задача для отладки 4 */ 'пpинадлежит'([X|_],X). 'принадлежит'([_|L],X):-'принадлежит'(L,X). 'пересечение'([],[],[]). 'пересечение'([H|T],B,[H|T1]):- 'принадлежит'(H,B),!, 'пересечение'(T,B,T1). 'пересечение'([H|T],B,T1):- 'пересечение'(T,B,T1). /* Запуск теста */ tst4:-'пересечение'([0,2,4,5],[1,2,3,4],L),write('L='),write(L),nl.
/* Задача для отладки 5 */ 'присоединить'([],L,L). 'присоединить'([A|L1],L2,[A|L3]):-'пpисоединить'(L1,L2,L3). 'подсписок'(A,B):-'присоединить'(_,X,B),'присоединить'(_,A,X). /* Запуск теста (должен быть ответ yes) */ tst5:-'подсписок'([2,3],[1,2,3,4]).
/* Задача для отладки 6 */ 'пpинадлежит'([X|_],X). 'принадлежит'([_|L],X):-'принадлежит'(L,X). 'объединение'([],L,L). 'объединение'([H|T],B,T1):- 'принадлежит'(H,B),!, 'объединение'(T,B,T1). 'объединение'([H|T],B,T1):- 'объединение'(T,B,T1). /* Запуск теста */ tst6:-'объединение'([0,2,4,5],[1,2,3,4],L),write('L='),write(L),nl.
/* Задача для отладки 7 */ 'удaлить'(A,[A|X],X). 'удалить'(A,[B|X],[B|Y]) :- 'удалить'(A,X,Y). 'перестановка2'([],[]). 'перестановка2'([A|X],Y) :- 'удалить'(A,Y,Y1), 'перестановка2'(X,Y). /* Запуск теста */ tst7:-'перестановка2'(L,[1,2,3,4]),write('L='),write(L),nl,fail.