解析数学方程

Sco*_*ott 1 math parsing haskell

只是为了踢,我正在尝试创建一个可以简化,分解和扩展代数方程的应用程序.如果我可以将方程式变成一个好的可行格式,那么对规则进行编程就好像是直截了当的.解析方程式证明是一个麻烦,目前正在使用Python,但我不反对必须学习新的东西.

是否有任何图书馆(任何语言)可以使这个项目变得非常简单,或者是一个梦想?

[用Haskell标记这个,因为我觉得'简单'就是这样的地方]

huo*_*uon 6

是的,Haskell有许多库使编写解析器变得相当容易.Parsec是一个很好的开始,甚至还有其他语言的克隆,包括Python(该文章也链接到pyparsing,看起来它也可能有效).

我的答案就是一个例子(注意,它可能不是顶级的Parsec或Haskell):它表明了Haskell解析库的强大功能,恰好4行代码实现了整个解析器.

您还可以浏览旧的问题和答案,以了解各种库和技术,例如,解析+ haskell解析+ python.

为更大的项目设计攻击线的最好方法是从小开始尝试,直到你对你的工具感到满意为止:选择一个库并尝试实现一个相对简单的解析器,比如只用数字解析表达式,+*,甚至只是解析号码,+与包围...小东西(但也不能太小;每个这两个例子都非小事,第一个具有运算符优先级,第二个递归嵌套).如果您不喜欢图书馆,请尝试使用其他图书馆.