Имена — это последовательности букв и цифр, начинающиеся с буквы (строчной!). Системы программирования на Прологе для компьютеров допускают использование лишь латинских строчных и прописных букв: a...z, A...Z. Использование русских строчных и прописных букв не допускается.
Типы данных
Включают атомарные, переменные значения и структуры.
Примеры специальных атомов:
: - (обозначает импликацию),
? - (вопрос, обозначающий отрицание),
! - (предикат отсечения).
Переменные
обозначаются последовательностью букв и цифр, начинающейся с прописной буквы. Особый вид переменной — анонимная переменная _, используемая в качестве аргумента предиката, когда конкретное значение переменной несущественно.
Структура
конструкция, состоящая из имени структуры и заключенного в скобки списка ее аргументов, разделенных запятыми. Элементами структур могут быть числа, атомы, переменные, другие структуры и списки.
Примеры структур: str(А,В,С), носит(юрий,пиджак).
Списки
представляют собой объединение элементов произвольных видов, разделенных запятыми и заключенных в квадратные скобки. Списки отличаются от структур тем, что количество элементов может меняться при выполнении программы. Примеры списков: [1,3,5,7], [красный,желтый, зеленый].
26. Операция сопоставления. Факты. Правила. Задание значений переменных. Вопрос.
Операция сопоставления
называемая также унификацией или согласованием.
константа сопоставляется только с равной ей константой;
идентичные структуры сопоставляются друг с другом;
переменная сопоставляется с константой или с ранее связанной переменной
(и становится связанной с соответствующим значением);
две свободные переменные могут сопоставляться (и связываться) друг с другом. С момента связывания они трактуются как одна переменная: если одна из них принимает какое-либо значение, то вторая немедленно принимает то же значение.
Примеры:
5 сопоставляется с 5; «имеет» сопоставляется с «имеет»; «Сергей» не сопоставляется с «юрий»; «имеет (сергей, машина)» не сопоставляется с «имеет (сергей, телевизор)»; «имеет (сергей, машина)» сопоставляется с «имеет (X, машина)», в этом случае переменная X получает в качестве значения атом «сергей».
Факты
— это предикаты с аргументами-константами, обозначающие отношения между объектами или свойства объектов, именованные этими константами. Факты в программе считаются всегда и безусловно истинными и таким образом служат основой доказательства, происходящего при выполнении программы.
Пример 1. Факты, описывающие телефонные номера:
телефон(иванов,т561532). телефон(петров,т642645). телефон(сидоров,т139833).
Пример 2. Факты, описывающие студентов:
нравится(сергей,рэп). нравится(юрий,джаз). носит(сергей, блейзер). носит(юрий, пиджак).