Учебное пособие: Язык логического программирования Visual Prolog
two = 2
hundred = (10*(10-1)+10)
pi = 3.141592653
ega = 3
slash_fill = 4
red = 4
Перед компиляцией программы VisualProlog заменит каждую константу на соответствующую ей строку.
На использование символических констант накладываются следующие ограничения:
· описание константы не может ссылаться само на себя:
my_number = 2*my_number/2 % не допускается
· это приведет к сообщению об ошибке "Recursioninconstantdefinition" (Рекурсия в описании константы);
· в описаниях констант система не различает верхний и нижний регистры. Следовательно, при использовании в разделе программы clauses идентификатора типа constants, его первая буква должна быть строчной для того, чтобы избежать путаницы между константами и переменными.
· в программе может быть несколько разделов constants, однако объявление константы должно производиться перед ее использованием;
· идентификаторы констант являются глобальными и могут объявляться только один раз. Множественное объявление одного и того же идентификатора приведи к сообщению об ошибке "Constantidentifiercanonlybedeclaredonce" (Идентификатор константы может объявляться только один раз).
Директивы компилятора
VisualProlog поддерживает несколько директив компилятора, которые можно добавлять в программу для сообщения компилятору специальных инструкций по обработке вашей программы при ее компиляции. Кроме этого, вы можете устанавливать большинство директив компилятора с помощью команды меню среды визуальной разработки VisualPrologOptions / Project / Compiler Options .
Директива include
Для того чтобы избежать многократного набора повторяющихся процедур, вы можете использовать директиву include.
Ниже приведен пример того, как это делается.
1. Создаете файл (например, MYSTUFF.PRO), в котором объявляете свои наиболее I часто используемые предикаты (с помощью разделов domains и predicates) и даете их описание в разделе clauses.
2. Пишете исходный текст программы, которая будет использовать эти процедуры.
3. В "допустимых областях" исходного текста программы размещаете строку:include "mystuff.pro"
"Допустимые области" — это любое место программы, в котором вы можете расположить декларацию разделов domains, facts, predicates, clauses или goal.
При компиляции исходных текстов программы VisualProlog вставит содержание файла MYSTUFF.PRO прямо в окончательный текст файла для компиляции.
Директиву include можно использовать для включения в исходный текст (практически любого) часто используемого фрагмента. Кроме того, любой включаемый в программу файл может, в свою очередь, включать другой файл (однако каждый файл может быть включен в вашу программу только один раз).
II . Унификация и поиск с возвратом
1. Сопоставление и унификация
Рассмотрим программу ch04e01.pro (рис.1) с точки зрения того, как утилита TestGoal будет отыскивать все решения следующей цели written_by(X, Y).
domains
title, author = symbol
pages= unsigned