Некоторые стандартные функции и предикаты

Хотя Пролог – не самый лучший инструмент для выполнения большого объема вычислений, в нем имеются стандартные средства для реализации вычислений. При этом можно использовать четыре арифметические операции: сложение (+), вычитание (-), умножение (*) и деление (/), а также целочисленное деление (div) и взятие остатка от деления одного целого числа на другое (mod). Для сравнения чисел можно воспользоваться операциями равно (=), не равно (<>), больше (>), больше или равно (>=), меньше (<), меньше или равно (<=).

Кроме того, можно использовать математические функции:

Арифметические предикаты и функции Пролога

Имя Описание
X mod Y Возвращает остаток от деления (модуль) X на Y
X div Y Возвращает частное от деления X на Y
abs(X) Если значение X - положительная величина value, abs(X) возвращает это значение; в противном случае - 1*value
cos(X) Возвращает косинус своего аргумента
sin(X) Возвращает синус своего аргумента
tan(X) Возвращает тангенс своего аргумента
arctan(X) Возвращает арктангенс вещественного значения, с которым связан X
exp(X) Возводит е в степень X
ln(X) Логарифм X по основанию е
sqrt(X) Корень квадратный из X
random(X) Присваивает X случайное вещественное число; 0<=X<1
random(X,Y) Присваивает Y случайное целое число; 0<=Y<X< b>
round(X) Округляет значение X. Результат вещественный
trunc(X) Усекает X. Результат вещественный

Величины углов указываются в радианах.

Нуль-местный предикат true всегда истинен, а нуль-местный предикат fail всегда ложен. Предикат fail часто используется для организации поиска с возвратом. Причем размещение какой-либо подцели в теле правила после предиката fail бессмысленно, поскольку в связи с тем, что этот предикат всегда терпит неудачу, цель никогда не будет достигнута.

Одноместный предикат free(Arg) истинен, если его аргументом является свободная переменная, и ложен в противном случае. Предикат bound(Arg), наоборот, истинен, если его аргумент – это связанная переменная, и ложен, если его аргумент свободен.

Управление выполнением программы


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: