Основы современных компьютерных технологий


Списки


Список - это упорядоченный набор объектов - элементов списка, следующих друг за другом. Элементы списка в языке Турбо-Пролог должны принадлежать одному и тому же доменному типу. Объектами списка могут быть: целые числа, действительные числа, символы, символьные строки, структуры.

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

[10,24,1,8,385,0,8]

[0.4,67.43,986.01,914.5]

["ПЕТРОВ П.Р.","ИВАНОВ Б.О.","СИДОРОВ Т.К."]

Список может содержать произвольное число элементов (ограничением является объем доступной оперативной памяти). Список, не содержащий элементов, называется пустым списком и обозначается []. Обработка списков в Турбо-Прологе базируется на разбиении списка на голову - первый элемент в списке и хвост - остальную часть списка. Например, как показано в следующей таблице:

Список Голова Хвост
[1,2,3,4] 1 [2,3,4]
['а'.'b'.'с'] 'а' ['bYc'l
["Курсант"] "Курсант" [ ]
[] не определено не определено

Наглядным представлением процесса разбиения списка на голову и хвост является графическое представление в виде бинарного (двоичного) дерева. Для списка [1,2,3,4] таким деревом будет следующее:

Для использования списков в Пролог-программе необходимо:

1) В разделе domains описать домен списка. Домен списка задается в формате:

= *

319

Например, домен списка, элементами которого являются целые числа, описывается следующим образом:

domains


list_num=integer*

или

list_num=elem*

elem= Integer

2) Описать работающий со списком предикат в разделе predicates, например:

predicates


num(list_num)

3) Ввести или создать в программе собственно список, т.е. задать список в разделах

goal или clauses.

Пример задания списков в Пролог-программе:

domains


Iist1=symbol*

Iist2=num*

num=integer

predicates


name(list1)

score(list2)

clauses


name(["ПЕТРОВ П.Р.","ИВАНОВ Б.О.","СИДОРОВ Т.К."]).



Начало  Назад  Вперед