是否有任何常规范式可以表示计算机可以读取的数学公式?
我正在研究一些数学问题,并且对它有某种TDD方法。每当我被证明卡住(或只是我还没有证明,但对结果应该有一些直觉)时,我倾向于编写一个小程序来检查到目前为止一切是否按照我的想法进行。我通常会在我的证明中为某些中间结果编写一个Haskell函数,并通过GHCi
对其进行处理,直到我确信我仍然朝着正确的方向前进。
我的绝对理想是对数学公式采用某种规范形式,我可以使用某种工具将其输出到LaTeX和Haskell。我可以在上面运行QuickTest,如果某个步骤有误,它将告诉我。 LaTeX的数学符号实际上非常接近规范形式,尽管读者可以推断出很多含义(您不想在每个括号中都明确地写)。
这个理想的工具似乎太好了,难以置信。而是,为计算机拼写数学公式(也可能对其进行解析)的正确方法是什么?在环顾四周时,我看到了很多仅使用*
,+
,-
,/
等简单公式的信息。没有东西包括和(例如集合),派生词,所有“酷”东西。此外,此类解析器的输出通常用于计算结果,并为变量提供一些值;不是为了将其翻译成其他语言(我猜是不可知的语言)。似乎类似的东西应该已经存在,或者应该有充分的理由不这样做。我想念哪一个?
最佳答案
数学符号的标准计算机表示形式为MathML。请注意,它同时包含Presentation MathML和converted to LaTeX,Content MathML代表数学表达式的编写方式,可以是OpenMath,ojit_a旨在代表表达式的含义,是翻译成Haskell或另一种编程语言所需要的(但是我不还不知道进行这种翻译的任何工具)。
当然,您不希望手动编写MathML(两种风格)。有一些产生它的编辑器,但是我不推荐一个。
否则,可以选择ojit_a。它似乎完全是针对“在计算机上使用数学的人”。
关于haskell - 数学公式: parsing and canonical *programming* form,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31744834/