使用 Scheme 计算后缀表达式的程序

program using Scheme that evaluates a postfix expression

我想使用方案转换后缀表达式 表达式将作为操作数和运算符的列表提供给解释器,例如 display( postfix(30 8 7 + / 3 4 - *) ) 这个例子应该 return -2 作为答案。

这是伪代码:

  • 将堆栈初始化为空列表
  • 对于表达式中的每个元素 e:
    • 如果 e 是一个数字,将其压入堆栈
    • 否则调用operator对应的函数(可以用关联表或者cond找这个),把stack作为参数传入
      - 该函数从堆栈中弹出所需的参数
      - 计算结果
      - 它将结果压入堆栈
      - 它returns更新的堆栈,主循环将其分配回堆栈变量
  • 最后,打印栈顶元素