是计量单位独有的F#? [关闭](Are units of measurement unique

2019-07-29 12:49发布

我在读安德鲁·肯尼迪的博客文章系列F#中的计量单位 ,它使一个很大的意义在很多情况下。 是否存在有这样的系统中的任何其他语言?

编辑:要更清楚,我的意思是测量系统,其中你可以随意定义自己的灵活单位。

Answer 1:

请问TI-89基本算什么? 输入54_kg * (_c^2)它会给你焦耳的答案。

除此之外,我不记得有它内置的任何语言,但体面OO任何语言应该简单推出自己的。 这意味着别人可能已经做到了。

谷歌证实。 例如, 这里有一个在Python 。 __repr__可以很容易地修改,以也选择最合适的衍生单元等

CPAN有Perl的几个模块: 物理::单位 , 数据::尺寸 , 类别::措施 , 数学::单位:: PhysicalValue ,和其他人,将转换,但真的不带单位结合值屈指可数。



Answer 2:

Nemerle有措施的编译器检查的单位在2006年。

http://nemerle.org

http://nemerle.org/forum.old/viewtopic.php?t=265&view=previous&sid=00f48f33fafd3d49cc6a92350b77d554



Answer 3:

C ++有它,在形式的boost ::单位 。



Answer 4:

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



Answer 5:

我相信我看到丰泽支持这一点,我会看到,如果我能找到一个链接。

我无法找到一个特定的链接,但语言的规范性使得它提了几个位置。 1.0语言规范还表示,尺寸和单位被暂时的下降,从规范(连同其他功能整体堆)与当前实现匹配。 这是一项正在进行的工作,所以我想的东西都在变化。



Answer 6:

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



Answer 7:

还有一个在一个Java规范单位http://jcp.org/en/jsr/detail?id=275 ,你已经可以从这里使用它http://jscience.org/



Answer 8:

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($"Mass in SI: $m4, in CGS: $m3");

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

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


Answer 9:

还有我做QuantitySystem库特别是在C#单位,但它不是编译时检查

但我试图使它运行,因为我想

同时它支持扩展,所以你可以定义自己的独特的单位

http://QuantitySystem.CodePlex.com

也可以扭矩和工作区分:) [这是非常重要,我]

图书馆的做法是从外形尺寸到单位所有我见过到现在单位唯一方法。



Answer 10:

我敢肯定的Ada有它。



Answer 11:

我敢肯定,你可以通过仔细猴子打补丁的一些基础类的大多数动态语言(JavaScript的,Python和Ruby)来做到这一点。 使用英制测量工作时,虽然你可能会遇到问题。



文章来源: Are units of measurement unique to F#? [closed]