Слайд 8
Бір тізімді басқа тізімнен алып тастау бағдарламасы minus(L1, L2, Diff). Яғни
Diff тек L1 де кездесіп, L2 де кездеспейтін элементтер орналасады.
minus([],_, []).
minus([X | L1], L2, L) :– member(X, L2), !, minus(L1, L2, L).
minus([X | L1], L2, [X | L]) :– minus(L1, L2, L).
Егер бастапқы тізім бос болса онда айырма нәтижесі де бос. Егер тізімнің басы нәтижелі тізімде бар болса, онда «басы» туралы ұмыта тұрамыз да алуды соңынан жасаймыз. Егер тізімде «басы» жоқ болса, онда қайта оралғанда «басын» нәтиже тізімге орналастыру керек.
Мысал:
?– minus([a, b], [b], L).
L = [а]
yes