Soulver是一个很棒的数学便签簿,它允许您以一种非常自然的形式编写表达式,这使得它在许多场合下使用起来既灵活又有趣。网站上有一段简短的视频,展示了它的许多功能。
例如,如果你去购物,你可以写一个很大的列表,如下所示
2 * 1.99 soap + 2.99 cereal + 39.59 organic magic beans 然后,当您键入时,可以看到行中内容的和(46.56)。
您还可以创建变量,例如
March = 2 * 1.99 soap + 2.99 cereal + 39.59 organic magic beans 并在以后的操作中引用它们。其他运营商,如' off‘(200美元四折),也同样存在。
考虑到它有一定程度的复杂性,它应该在忽略一些输入的同时区分有意义的术语,我应该使用哪种语法来表示这种小语言?我也许可以拼凑一些意大利面正则表达式,但老实说,我想做一些更好的事情,即使这需要我做很多研究。你有什么推荐的?
发布于 2011-09-16 16:55:02
如果你想要对真实的数学建模,例如,任何带有嵌套括号的东西,那么regexp本身可能不足以表达作业。
上下文无关文法具有很强的表现力。您应该了解Backus Normal Form (BNF),这是一种将语言描述写成上下文无关文法的方法。
您可以从许多解析器生成器工具中进行选择,以将语法转换为真正的解析器。
您编写的特定语法取决于您希望表达式的含义,以及表达式中的哪些原子真正被忽略。实际上,编写BNF的方式因工具而异,因此首先选择解析器生成器工具可以省去稍后重写BNF的麻烦。
https://stackoverflow.com/questions/7441637
复制相似问题