我正在阅读Andrew Kennedy的博客文章系列 F#中的计量单位,在很多情况下都很有意义。还有其他语言有这样的系统吗?

编辑:更清楚一点,我指的是灵活的测量单位,您可以随意定义自己的测量系统。

有帮助吗?

解决方案

TI-89 BASIC是否计算在内?输入 54_kg *(_ c ^ 2),它将以焦耳为您提供答案。

除此之外,我不记得任何内置它的语言,但任何具有体面OO的语言都应该让你自己动手。这意味着其他人可能已经做过了。

谷歌证实了这一点。例如,这是Python中的一个。可以很容易地修改 __ repr __ 以选择最合适的派生单位等。

CPAN为Perl提供了几个模块:物理::单位 Data ::尺寸 Class :: Measure Math :: Units :: PhysicalValue ,以及其他一些将转换但不真正将值与单位组合在一起的其他人。

其他提示

我不确定这是否真的很重要,但我的HP-48计算器上的 RPL 系统确实有类似的功能。我可以写 40_gal 5_l + 并得到156.416升的正确答案。

我相信我看到 Fortress 支持这一点,我会看看能不能找到一个链接。

我找不到具体的链接,但语言规范在几个地方提到了它。 1.0语言规范还说,维度和单位暂时从规范中删除(连同一大堆其他功能)以匹配当前的实现。这是一项正在进行中的工作,所以我猜情况正在不断变化。

F#是支持此功能的第一种主流语言。

Nemerle有比F#更好的东西!

你应该检查一下: http://rsdn.ru/forum/ src / 1823225.flat.aspx#1823225

真的很棒。 你可以在这里下载: http://rsdn.ru/File/27948/Oyster .Units.0.06.zip

一些例子:

def m3 = 1 g;
def m4 = Si.Mass(m1);

WriteLine(<*>quot;Mass in SI: $m4, in CGS: $m3");

def x1 = Si.Area(1 cm * 10 m);

WriteLine(<*>quot;Area of 1 cm * 10 m = $x1 m");

我特别为C#中的单位创建了QuantitySystem库,但它不是编译时检查

但我试图让它按照我想要的方式运行

它也支持扩展,因此您可以定义您的唯一单位

http://QuantitySystem.CodePlex.com

它也可以区分Torque和Work :) [这对我很重要]

库方法是从Dimension到单位 到目前为止我所看到的只是单位接近。

我很确定阿达有它。

我确信你能够通过 仔细 对大多数动态语言(javascript,python,ruby)执行此操作 猴子修补一些基础 - 类。在使用英制测量时,您可能会遇到问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top