如何将用户友好的中缀数学代码转换为Clojure代码?

Vi.*_*Vi. 7 parsing clojure infix-notation

我希望用户能够像这样输入:

5+6*t+sin(2*t)
Run Code Online (Sandbox Code Playgroud)

,所以它将转换为:

(+ 5 (* 6 t) (sin (* 2 t)))
Run Code Online (Sandbox Code Playgroud)

,所以我可以将它评估为一些JIT的函数,以后再高效执行.

是否已有可用于最新Clojure的库(具有运营商优先级)?

Art*_*ldt 7

Incanter包中包含一个用于进行中缀数学模块

user> ($= 7 + 8 - 2 * 6 / 2)
9
Run Code Online (Sandbox Code Playgroud)

和其他人写了包.