【问题标题】:Mathematical expression evaluator which incorporates units of measure包含度量单位的数学表达式评估器
【发布时间】:2012-01-14 05:50:08
【问题描述】:

this question 相似但不同。那里有很多好的答案,但没有一个是度量单位。

一个 .NET 兼容(甚至通过 COM,如果必要的话)的数学表达式评估器如何?

我已经为无单位表达式尝试过 NCalc。我知道 F# 可以在代码中做到这一点。 Google Calculator 很棒,但作为受支持的 API 不可用,并且不适合该项目的服务基础。

Here's an interesting paper on the subject。它涵盖了测量单位的计算,但省略了“加法常数”转换,例如摄氏到华氏(根据他们的结论)。它提出了一个关于物质的好观点。 “加仑汽油”与“加仑牛奶”。单位相同,但内容不同,因此图书馆可能应将其视为不同。使用正确的炼金术士方程,一加仑汽油能产出多少牛奶? :-P

NCalc 是否可以挂钩来实现这一点?否则,增强 NCalc 会涉及多少工作?是否有任何其他可以处理度量单位的 .Net 兼容库?

【问题讨论】:

  • 您可以在运行时评估 F# 表达式。
  • F# 很棒,它只是不适合这种情况,除非它可以接受类似 googleCalc 的语法,不包括高级非表达式评估功能,允许自定义符号/变量绑定,并提供有用/简单错误以引导用户使用有效的表达式。你能提供一个像谷歌计算器一样的完整答案吗?

标签: .net interpreter units-of-measurement expression-evaluation ncalc


【解决方案1】:

FParsec 看起来很有趣!它只对表达式 parsing 步骤有所帮助,但这似乎是大部分的战斗。支持 F# 中紧凑的、类似 BNF 的定义,并且可以提供高质量的错误消息。

Dimensional Anaylsis 仍然是一项自定义工作,但使用正确解析的 AST,是否难以实现?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多