Содержание
- 2. Список как частный вид структуры Определение. Под списком понимается упорядоченная последовательность однотипных элементов, которая может иметь
- 3. Способы представления списков Функторный, графический и скобочный При использовании функторной формы записи голова и хвост являются
- 4. Описание списков в Prolog Графическая форма записи списка в виде «виноградной лозы» удобна для записи списков
- 5. Применение списков в программе Домен списка описывается в разделе domains, а работающий со списком предикат -
- 6. Правила сопоставления списков Сопоставление списков - конкретизация переменных
- 7. Печать элементов списка print_list([]):- ! . print_list([Head|Tail]) :- write(Head), nl, print_list(Tail). print_list(Список) domains n=integer* predicates print_list(n)
- 8. Определение длины списка length(Список, Количество) length([],0):-!. length([_|T],N) :- length(T,N1), N = N1+1. Предикат length не может
- 9. Определение длины списка length(L,N) :- length(L,0,N). length([_|T],S,N) :- S1 = S+1, length(T,S1,N). length([],N,N). length(Список, Количество) За
- 10. Определение суммы элементов списка sum([X],X):-!. sum([X|T],S) :- sum(T,S1), S = S1+X. sum([],S,S):-!. sum([X|T],S,R) :- S1=S+X, sum(T,S1,R).
- 11. Этапы решения задачи «Нахождение суммы элементов списка» sum_lst([], 0):-!. sum_lst([Head|Tail], Sum) :- sum_lst(Tail, Sum1), Sum =
- 12. Принадлежность элемента списку member(Элемент, Список) member(X,[X|_]). member(X,[_|T]) :- member(X,T). member используется не только для проверки, но
- 13. member для генерации значений member(X,[X|_]). member(X,[_|T]) :- member(X,T). Goal member(X,[1, 2, 3]), write(X),nl,fail.
- 14. Удаление элемента из списка remove(Элемент, Список,Результат) remove(X,[X|T],T):- !. remove(X,[H|T],[H|R]):- remove(X,T,R). Удаляется лишь одно вхождение элемента. Упражнение:
- 15. Конкатенация (объединение) списков append(Список, Список, Результат) append([],L,L):- !. append([X|T],L,[X|R]):- append(T,L,R). Постановка задачи. Требуется построить список –результат
- 16. append для конкатенации append([],L,L):- !. append([X|T],L,[X|R]):- append(T,L,R).
- 18. Скачать презентацию