Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 129
- 130
- 131
- 132
- 133
- …
- следующая ›
- последняя »
