Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Объекты данных




Программа на языке Пролог обычно описывает некую действительность. Объекты (элементы) описываемого мира представляются с помощью термов. Терм интуитивно означает объект. Существует 4 вида термов: атомы, числа, переменные и составные термы. Атомы и числа иногда группируют вместе и называют простейшими термами.

Атом - это отдельный объект, считающийся элементарным. В Прологе атом представляется последовательностью букв нижнего и верхнего регистра, цифр и символа подчеркивания '_', начинающейся со строчной буквы. Кроме того, любой набор допустимых символов, заключенный в апострофы, также является атомом. Наконец, комбинации специальных символов + - * = < >: & также являются атомами (следует отметить, что набор этих символов может отличаться в различных версиях Пролога).


Пример
Представленные далее последовательности являются корректными атомами:

b, abcXYZ, x_123, efg_hij, коля, слесарь,

'Это также атом Пролога',

+,::, <---->, ***

Числа в Прологе бывают целыми (Integer) и вещественными (Float).

Синтаксис целых чисел прост, как это видно из следующих примеров: 1, 1313, 0, -97. Не все целые числа могут быть представлены в машине, их диапазон ограничен интервалом между некоторыми минимальным и максимальным значениями, определенными конкретной реализацией Пролога. SWI-Prolog допускает использование целых чисел в диапазоне от -2147483648 (-231) до 2147483647 (231-1).

Синтаксис вещественных чисел также зависит от конкретной реализации. Мы будем придерживаться простых правил, понятных из следующих примеров: 3.14, -0.0035, 100.2. При обычном программировании на Прологе вещественные числа используются редко. Причина этого кроется в том, что Пролог - язык, предназначенный в первую очередь для обработки символьной, а не числовой информации. При символьной обработке часто используются целые числа, нужда же в вещественных числах невелика. Везде, где можно, Пролог старается привести число к целому виду.

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

X, _4711, X_1_2, Результат, _x23, Объект2, _

Последний пример (единственный символ подчеркивания) является особым случаем - анонимной переменной (переменной без имени). Анонимная переменная применяется, когда ее значение не используется в программе. Возможное неоднократное употребление безымянной переменной в одном выражении применяется для того, чтобы подчеркнуть наличие переменных при отсутствии их специфической значимости.

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

Для соединения компонентов в целостный объект необходимо выбрать функтор.

4. Засоби перевірки типів елементів даних в Пролозі

number(X)принимает истинное значение,еслиX — число или переменная,значени-ем которой является число

var {X).Выполняется успешно,если X в настоящее время—неконкретизи-рованная переменная.

•nonvar(X).Выполняется успешно,еслиX —не переменная илиX—уже

Конкретизированная переменная.

•atom!X).Принимает истинное значение,еслиX в настоящее время обозначает атом.

•intege r(X).Принимает истинное значение,еслиX в настоящее время обозначает целое число.

•floa t[X).Принимает истинное значение,если х в настоящее время обозначает число с плавающей точкой.

•number(X).Принимает истинное значение,еслиX в настоящее время обозначает число,

•atomi c(X).Принимает истинное значение,если X в настоящее время обозначает число или атом.

•compound(X).Принимает истинное значение,если X в настоящее время обозначает составной терм(структуру).

5. Різні типи рівності елементів даних в Пролозі.

В каких случаях мы считаем, что два терма равны? До сих пор мы рассматривали три вида равенства в Прологе. Первый был связан с сопоставлением и записывался так:

Х = Y

Это равенство верно, если Х и Y сопоставимы. Следующий вид равенства записывался в виде

Х is E

Такое равенство выполняется, если Х сопоставим со значением арифметического выражения E. Мы также рассматривали равенства вида

Е1 =:= Е2

которые верны, если равны значения арифметических выражений Е1 и Е2. Наоборот, если значения двух арифметических выражений не равны, мы пишем

Е1 =/= Е2

Иногда нам может понадобиться более строгий вид равенства - буквальное равенство двух термов. Этот вид реализован еще одним встроенным предикатом, записываемым как инфиксный оператор ' == ':

Т1 == Т2

Это равенство выполняется, если термы Т1 и Т2 идентичны, т. е. имеют в точности одинаковую структуру, причем все соответствующие компоненты совпадают. В частности, должны совпадать и имена переменных. Отношение "не идентичны", дополнительное к данному, записывается так:

Tl \== T2

Приведем несколько примеров:

?- f(a, b) == f(а, b).
yes

?- f(a, b) == f(a, X).

?- f(a, X) == f(a, Y).
no

?- X \== Y.
yes

?- t(X, f(a, Y)) == t(X, f(a, Y)).
yes

Давайте в качестве примера переопределим отношение





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 336 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Не будет большим злом, если студент впадет в заблуждение; если же ошибаются великие умы, мир дорого оплачивает их ошибки. © Никола Тесла
==> читать все изречения...

2541 - | 2236 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.