Студопедія
рос | укр

Головна сторінка Випадкова сторінка


КАТЕГОРІЇ:

АвтомобіліБіологіяБудівництвоВідпочинок і туризмГеографіяДім і садЕкологіяЕкономікаЕлектронікаІноземні мовиІнформатикаІншеІсторіяКультураЛітератураМатематикаМедицинаМеталлургіяМеханікаОсвітаОхорона праціПедагогікаПолітикаПравоПсихологіяРелігіяСоціологіяСпортФізикаФілософіяФінансиХімія






Частина ІІІ


Дата добавления: 2015-10-18; просмотров: 597



towns([«Петербург»,«Псков»,«Новгород»,«Ладога»,«Ямбург»]).

 

Реализация такой программы возможна при использовании, например, следующих внешних целей:

towns(All). или towns([X,_,_,Y,_]).

 

Список не имеет никаких предикатов для своей обработки. Для снятия этого неудобства введена единственная операция над элементами списка, называемая МЕТОДОМ СПИСКА НА ГОЛОВУ И ХВОСТ. При этом непустой список рассматривается как структура, состоящая из двух частей:

[Head|Tail].

 

Переменная Head (голова списка) это его первый элемент или фиксированное количество элементов, отделенных символом "|" (вертикальная черта). А переменная Tail (хвост) это список оставшихся элементов списка.

 

В таблице 4.1 приведены примеры деления списка на голову и

хвост. При этом видно, что хвост списка - всегда список, а

Таблица 4.1

голова - элемент списка, и разделение списка на голову и хвост не зависит от длины списка. Последовательное применение этого метода позволяет легко осуществлять различные операции над списками и написать практически любую программу по обработке любого мыслимого списка.

 

Как осуществляется сопоставление списков? Варианты результатов сопоставления представлены в таблице 4.2.

Таблица 4.2

 

Пример 4.2 показывает использование метода разделения списка для осуществления доступа к его элементам. В этом примере используется рекурсивное правило для реализации доступа к элементам списка. Если ввести цель

 

towns([«Петербург»,«Псков»,«Новгород»,«Ладога»,«Ямбург»]).

 

то в результате будет выведен на экран монитора список городов по одному на каждой строке.

 

/*Пример 4.2.*/


<== предыдущая лекция | следующая лекция ==>
Частина І | Варіант 1
1 | <== 2 ==> |
Studopedia.info - Студопедия - 2014-2024 год . (0.189 сек.) російська версія | українська версія

Генерация страницы за: 0.19 сек.
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7