2015-12-19 62 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的輸出。