2015-12-19 42 views
-2

在方案中 - 如何评估一个简单的表达式(仅包含+ * - /()和0-9数字)作为字符串给出?方案:如何评估算术表达式

我试着先把表达式转换成后缀表达式,但我想我做错了什么。

谢谢

+2

请阅读http://stackoverflow.com/help/how-to-ask – Renzo

回答

1

也许你可以使用这个解析器来处理中缀表达式。

http://planet.racket-lang.org/package-source/soegaard/infix.plt/1/0/planet-docs/manual/index.html

这里是一个小例子(它需要一段时间的图书馆安装 - 这似乎老原理图测试套件永远需要安装这些天 - 我需要切换到内置的一个)。

#lang at-exp racket 
(require (planet soegaard/infix) 
     (planet soegaard/infix/parser)) 
(display (format "1+2*3 is ~a\n" @${1+2*3})) 

(parse-expression #'here (open-input-string "1+2*3")) 

的输出将是:

1+2*3 is 7 
.#<syntax:6:21 (#%infix (+ 1 (* 2 3)))> 

功能解析表达式解析表达式字符串中和 返回语法对象类似于ToExpression的输出。