我想使用方案转换后缀表达式表达式将作为操作数和运算符的列表提供给解释器,如显示(后缀(30 8 7+/3 4-*((这个例子应该返回-2作为答案。
这里是伪代码:
- 将堆栈初始化为空列表
- 对于表达式中的每个元素e:
- 如果e是一个数字,将它推到堆栈上
- 否则,调用与运算符对应的函数(您可以使用关联列表或
cond
来找到它(,将堆栈作为参数传递
-该函数从堆栈中弹出所需的参数
-它计算结果
–它将结果推送到堆栈上
--它返回更新的堆栈,主循环将其分配回堆栈变量
- 最后,打印堆栈的顶部元素