Содержание
- Термы
- Преобразование в терм
- Обратное преобразование
- Списки символов
- Преобразование в список
- Преобразование списка в атом
- Обратное преобразование
- Грамматики
- Описание грамматики
- Преобразование в строку
- Обратное преобразование
Домашнее задание 15. Разбор выражений на Prolog
-
Доработайте правило
eval(Expression, Variables, Result)
, вычисляющее арифметические выражения.-
Пример вычисления выражения
2(-x) - 3
дляx = 5
:evaluate( operation(op_subtract, operation(op_multiply, const(2), operation(op_negate, variable(x)) ), const(3) ), [(x, 5)], -13 )
-
Поддерживаемые операции:
сложение (
op_add
,+
), вычитание (op_subtract
,-
), умножение (op_multiply
,*
), деление (op_divide
,/
), противоположное число (op_negate
,negate
).
-
Пример вычисления выражения
-
Реализуйте правило
postfn_str(Expression, Atom)
, разбирающее/выводящее выражения, записанные в постфиксной функциональной форме. Например,postfn_str( operation(op_subtract, operation(op_multiply, const(2), operation(op_negate, variable(x))), const(3) ), '((2, (x)negate)*, 3)-' )
- Добавьте поддержку произвольного числа пробельных символов.
- Правила должны быть реализованы с применением DC-грамматик.