与此问题相似但不同。有很多好的答案,但没有一个是度量单位。
一个。net兼容的(甚至通过COM,如果必要的话)数学表达式计算器合并度量单位怎么样?
我已经尝试过NCalc的无单位表达式。我知道f#可以在代码中做到。谷歌计算器是惊人的,但不可作为一个受支持的API,是不合适的服务基础为这个项目。
这里有一篇关于这个主题的有趣论文。它涵盖了测量单位的计算,但遗漏了"附加常数"的转换,比如摄氏度到华氏度(根据他们的结论)。它提出了一个关于物质的好观点。"加仑汽油"vs"加仑牛奶"。它们的单位是一样的,但是它们的实质是不同的,所以也许图书馆应该把它们区别对待。有了正确的炼金方程式,一加仑汽油能产生多少牛奶?: - pNCalc是否可以实现此功能?否则,提高NCalc需要做多少工作?有没有其他。net兼容的库可以处理度量单位?
FParsec看起来很有趣!它只对表达式解析步骤有帮助,但这似乎是大多数战斗。在f#中支持紧凑的、类似于bnf的定义,并可以提供高质量的错误消息。
维度分析仍然是一个自定义的工作,但与适当解析AST,它会很难实现吗?