Интеллектуальные информационные системы. Макаренко С.И. - 131 стр.

UptoLike

Составители: 

130
14.7 Структуры данных
Термы Пролога позволяют выразить самую разнообразную
информацию. Рассмотрим два вида широко используемых структур данных:
списки и бинарные деревья, и покажем, как они представляются термами
Пролога.
14.7.1 Списки
Задачи, связанные с обработкой списков, на практике встречаются
очень часто. Например понадобилось составить список студентов,
находящихся в аудитории. С помощью Пролога возможно определить список
как последовательность термов, заключенных в скобки. Приведем примеры
правильно построенных списков Пролога:
[джек, джон, фред, джилл, джон]
[имя (джон, смит), возраст(джек, 24), X]
[Х.У.дата (12,январь, 1986) ,Х]
[]
Запись
[H|T]
определяет список, полученный добавлением
Н
в начало
списка
Т
. Говорят, что
Н
голова, а
Т
хвост списка
[H|T]
. На вопрос
?-L=[a|[b, c, d]].
будет получен ответ
L=[a, b, c, d],
а на запрос
?-L= [a, b, c, d], L2=[2|L]
ответ
L=[a, b, c, d], L2- [2, a, b, c, d]
Запись
[Н|Т]
используется для того, чтобы определить голову и хвост
списка. Так, запрос
?- [X|Y]=[a, b, c].
дает
Х=а, Y=[b, c]
Заметим, что употребление имен переменных
Н
и
Т
необязательно.
Кроме записи вида
[H|T]
, для выборки термов используются переменные.
Запрос
?-[a, X, Y]=[a, b, c].
определит значения
X=b Y=c
                         14.7 Структуры данных

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

                              14.7.1 Списки

     Задачи, связанные с обработкой списков, на практике встречаются
очень часто. Например понадобилось составить список студентов,
находящихся в аудитории. С помощью Пролога возможно определить список
как последовательность термов, заключенных в скобки. Приведем примеры
правильно построенных списков Пролога:
       [джек, джон, фред, джилл, джон]
       [имя (джон, смит), возраст(джек, 24), X]
       [Х.У.дата (12,январь, 1986) ,Х]
       []
     Запись [H|T] определяет список, полученный добавлением Н в начало
списка Т. Говорят, что Н — голова, а Т — хвост списка [H|T]. На вопрос
       ?-L=[a|[b, c, d]].
будет получен ответ
       L=[a, b, c, d],
а на запрос
       ?-L= [a, b, c, d], L2=[2|L]
— ответ
       L=[a, b, c, d], L2- [2, a, b, c, d]
     Запись [Н|Т] используется для того, чтобы определить голову и хвост
списка. Так, запрос
       ?- [X|Y]=[a, b, c].
дает
       Х=а, Y=[b, c]
     Заметим, что употребление имен переменных Н и Т необязательно.
Кроме записи вида [H|T], для выборки термов используются переменные.
Запрос
       ?-[a, X, Y]=[a, b, c].
       определит значения
       X=b Y=c



                                   130