в том, чтобы получить элемент
Пример 5:
индексация элементов списка.
Смысл программы 127 состоит в том, чтобы получить элемент под номером N или узнать номер элемента X.
Программа 127
получить ([X | Y], 1, X).
получить ([W | Y], N, X) :- N is M+l, получить (Y, M, X).
Пример 6: поиск максимального элемента.
Программа 128
max ([X], X).
max ([X | Y], X) :- шах (Y, W), X>W, !.
max ([X | Y], W) :-max (Y, W).
Декларативный смысл программы: если в списке один элемент - он и является максимальным, если более одного, то это голова списка, если она больше максимального элемента хвоста, или максимальный элемент хвоста.
Пример 7:
обращение списка.
Данная задача - самая сложная из рассмотренных. Для ее решения важно сообразить, что обратить список из одного элемента - означает оставить список без изменения. Обратить более длинный список - обратить его хвост, а потом сзади приставить к нему голову исходного списка.
Программа 129
обр ([X], [X]) .
обр ([X I Y], Z) :- обр (Y, W), присоединить (W, [X], Z).
В этой программе используется процедура слияния списков, описанная выше.
Arity-Prolog располагает значительным числом встроенных предикатов для обработки списков, так что приведенные программы имеют, в основном, учебный характер.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий