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