Содержание
- Термы
- Преобразование в терм
- Обратное преобразование
- Списки символов
- Преобразование в список
- Преобразование списка в атом
- Обратное преобразование
- Грамматики
- Описание грамматики
- Преобразование в строку
- Обратное преобразование
Домашнее задание 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-грамматик.