使用Scheme评估后缀表达式的程序

时间:2018-11-07 16:22:12

标签: scheme postfix-notation

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

1 个答案:

答案 0 :(得分:0)

这是伪代码:

  • 将堆栈初始化为空列表
  • 对于表达式中的每个元素e:
    • 如果e是数字,则将其压入堆栈
    • 否则,调用与运算符相对应的函数(您可以使用关联列表或cond来找到它),将堆栈作为参数传递
          -该函数将所需的参数弹出堆栈
          -计算结果
          -将结果压入堆栈
          -它返回更新后的堆栈,主循环将其分配回堆栈变量
  • 最后,打印堆栈的顶部元素