12
Цели бывают внутренние, которые являются кодом программы и
внешние, которые вводятся с клавиатуры. Внешняя цель программы
находит все решения для заданной задачи, внутренняя цель только
первое решение. Программы Турбо-Пролога с внешней целью называ-
ются интерактивными. После того как программа запущена, не
выполнится ничего полезного до тех пор, пока система не встретит цель
в программе, а при внешней цели приглашение goal: (цель)
1.6. Переменные
Логические переменные в программах Турбо-Пролога использу-
ются для обозначения неопределенных объектов. Переменные – это
цепочки, состоящие из букв, цифр и символов подчеркивания. Они
начинаются с прописной буквы или знака подчеркивания.
Если переменная встречается в предложении только один раз, то
нет необходимости давать ей имя. Можно использовать так называемую
“анонимную переменную”, которая обозначается “–”. Анонимная пере-
менная – переменная, используемая вместо поименованной переменной
в тех случаях, когда значение переменной не представляет интерес.
Если анонимная переменная встречается в цели программы, то ее
значение не выводится при ответе системы на поставленную цель.
Например:
parent(X, _).
В данной цели содержится вопрос об именах родителей, имена
детей обозначены через анонимную переменную.
Использование переменных в программах, написанных на Турбо-
Прологе отличается от использования переменных в традиционных
языках программирования. В этих программах переменная обозначает
неопределенный, но единственный объект, а не некоторую область
памяти. Лексический диапазон имени переменной – одно предложение.
Например, если имя переменной Х встречается в двух предложениях,
то оно обозначает две разные переменные.
Если переменная не имеет значения, то она неозначена или
неинициализирована (свободная). Неозначенная переменная не равна
нулю, или пробелу, не имеет значений равных “мусору” (какой бы мусор
не оказался в памяти, отведенной для переменной). Всякий раз, когда
переменная сопоставляется с константой, то получается значение этой
константы. Переменная вновь становится свободной, когда сопоста-
вление оказывается неуспешным или цель успешно вычислена.