Содержание
- 2. Определение
- 3. Синтаксис списка [] /* пустой список (длины 0) */ [элемент] /* список с одним элементом -
- 4. Длина списка length([], 0) . length([_|Y], N) :- length(Y, N1), N is N1 + 1.
- 5. Принадлежность списку member(A, [A|_]). member(A, [_|Z]) :- member(A, Z).
- 6. Конкатенация списков append([], X, X). append([A|X], Y, [A|Z]) :- append(X,Y,Z). Реализация принадлежности списка через append: member1(X,L):-append(_,[X|_],L).
- 7. Примеры использования Задание 1: Определить следующего за Ивановым ученика append(_,[Ivanov,X|_],L). Задание 2: Отделить последний элемент списка
- 8. Удаление из списка remove(X,[X|T],T). remove(X,[Y|T],[Y|T1]):-remove(X,T,T1).
- 9. Перестановки списка permute([],[]). permute(L,[X|T]):-remove(X,L,R),permute(R,T). ?-permute([a,b,c],L),write(L). [a,b,c] [a,c,b] [b,a,c] [b,c,a] [c,a,b] [c,b,a]
- 10. Задача * Имеются возраста 3 подруг Иры, Маши, Саши: 10, 13, 15 лет. Ира старше Маши,
- 11. Предикат поиска всех решений bagof(X,f(X),L), - определяет список термов L , конкретизирующих переменную X. setof =
- 12. Бинарные деревья bt(LD,X,RD). Лист: bt(nil,c,nil) bt(bt(nil,1,bt(bt(nil,2,nil),3,bt(nil,5,nil))),7,nil)
- 13. Создание сортирующего дерева Включение по возрастанию: insert (nil,D,bt(nil,D,nil)). insert (bt(LT,K,RT),X,bt(Ltnew,K,RT) ):-X insert (bt(LT,K,RT),X,bt(LT,K,Rtnew) ):-X>K,insert(RT,X,Rtnew). Cписок в
- 15. Скачать презентацию