Составители:
Рубрика:
128
Эти атомы являются главными функторами в структуре, а сама структура
может принимать только описанные выше формы.
Арифметический оператор выполняется следующим образом. Во-
первых, вычисляются арифметические выражения по обе стороны оператора.
Во-вторых, над результатом вычислений выполняется нужная операция.
Арифметические операторы определяются Пролог-системой. Если мы
напишем предикат
среднее(X,Y,Z) :- Z is (X+Y)/2
.
то, хотя можно определить среднее как оператор,
?- ор(250^х, среднее)
.
но Пролог выдаст сообщение об ошибке, если встретит выражение
Z is X среднее Y.
Это произойдет потому, что
Х
среднее
Y
не образует арифметического
выражения, а среднее не является арифметическим оператором,
определенным в системе.
14.6.3 Вычисление арифметических выражений
В Прологе не допускаются присваивания вида
Сумма=2+4
.
Выражение такого типа вычисляется только с помощью системного
предиката
is
, например:
Сумма is 2+4
.
Предикат
is
определен как инфиксный оператор. Его левый аргумент
— или число, или неконкретизированная переменная, а правый аргумент —
арифметическое выражение.
Попытка доказательства целевого утверждения
Х is Y
заканчивается
успехом в одном из следующих случаев:
-
Х
— неконкретизированная переменная, а результат вычисления
выражения
Y
есть число;
-
Х
— число, которое равно результату вычисления выражения
Y
.
Цель
Х is Y
не имеет побочных эффектов и не может быть
согласована вновь. Если Х не является неконкретизированной
переменной или числом либо если Y — не арифметическое
выражение, возникает ошибка.
Примеры:
D is 10-5
- заканчивается успехом и D становится равным 5,
4 is 2*4-4
- заканчивается успехом,
Эти атомы являются главными функторами в структуре, а сама структура
может принимать только описанные выше формы.
Арифметический оператор выполняется следующим образом. Во-
первых, вычисляются арифметические выражения по обе стороны оператора.
Во-вторых, над результатом вычислений выполняется нужная операция.
Арифметические операторы определяются Пролог-системой. Если мы
напишем предикат
среднее(X,Y,Z) :- Z is (X+Y)/2.
то, хотя можно определить среднее как оператор,
?- ор(250^х, среднее).
но Пролог выдаст сообщение об ошибке, если встретит выражение
Z is X среднее Y.
Это произойдет потому, что Х среднее Y не образует арифметического
выражения, а среднее не является арифметическим оператором,
определенным в системе.
14.6.3 Вычисление арифметических выражений
В Прологе не допускаются присваивания вида Сумма=2+4.
Выражение такого типа вычисляется только с помощью системного
предиката is, например:
Сумма is 2+4.
Предикат is определен как инфиксный оператор. Его левый аргумент
— или число, или неконкретизированная переменная, а правый аргумент —
арифметическое выражение.
Попытка доказательства целевого утверждения Х is Y заканчивается
успехом в одном из следующих случаев:
- Х — неконкретизированная переменная, а результат вычисления
выражения Y есть число;
- Х — число, которое равно результату вычисления выражения Y.
Цель Х is Y не имеет побочных эффектов и не может быть
согласована вновь. Если Х не является неконкретизированной
переменной или числом либо если Y — не арифметическое
выражение, возникает ошибка.
Примеры:
D is 10-5 - заканчивается успехом и D становится равным 5,
4 is 2*4-4 - заканчивается успехом,
128
Страницы
- « первая
- ‹ предыдущая
- …
- 127
- 128
- 129
- 130
- 131
- …
- следующая ›
- последняя »
