20

F# の測定単位に関する Andrew Kennedy のブログ投稿シリーズを読んでいましたが、多くの場合、それは非常に理にかなっています。このようなシステムを持つ言語は他にありますか?

編集:より明確にするために、私はあなたが任意に定義できる測定システムの柔軟な単位を意味します。

4

11 に答える 11

11

TI-89 BASIC はカウントされますか? と入力54_kg * (_c^2)すると、ジュール単位で答えが返ってきます。

それ以外に、それが組み込まれている言語を思い出すことはできませんが、適切な OO を備えた言語であれば、独自の言語を簡単に作成できるはずです。これは、おそらく他の誰かがすでに行っていることを意味します。

Googleは確認します。たとえば、これは Python のものです__repr__最も適切な派生単位などを選択するように簡単に修正できます。

CPAN には Perl 用のモジュールがいくつかあります: Physics::UnitData::DimensionsClass::MeasureMath::Units::PhysicalValue、および変換はするが実際には値を単位と結合しないいくつかのモジュール。

于 2008-09-20T05:45:34.203 に答える
7

C++ には、boost::unitsの形式でそれがあります。

于 2008-11-17T01:13:25.820 に答える
7

Nemerle は、2006 年にコンパイラによってチェックされた測定単位を持っていました。

http://nemerle.org

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

于 2008-11-17T00:17:21.283 に答える
4

これが本当に重要かどうかはわかりませんがRPL、HP-48 電卓のシステムには同様の機能があります。私は40_gal 5_l +、156.416 リットルの正しい答えを書くことができます。

于 2008-09-20T05:34:07.320 に答える
4

Fortressがこれをサポートしているのを見たと思います。リンクを見つけられるかどうかを確認します。

特定のリンクは見つかりませんが、言語仕様ではいくつかの場所で言及されています。1.0 言語仕様では、現在の実装と一致させるために、ディメンションと単位が (他の機能の山全体と共に) 一時的に仕様から削除されたと述べています。進行中の作業なので、状況は流動的だと思います。

于 2008-09-20T05:35:57.613 に答える
4

F# は、この機能をサポートする最初の主流言語です。

于 2008-10-19T02:29:01.140 に答える
2

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");
于 2011-03-08T09:09:15.020 に答える
2

http://jcp.org/en/jsr/detail?id=275には単位の Java 仕様もあり、ここから既に使用できますhttp://jscience.org/

于 2008-11-17T00:13:56.707 に答える
1

特にC#のユニット用にQuantitySystemライブラリを作成しましたが、コンパイル時のチェックは行われません。

しかし、私はそれを私が望むように実行させようとしました

また、拡張をサポートしているため、独自のユニットを定義できます

http://QuantitySystem.CodePlex.com

また、トルクと仕事を区別することができます:)[これは私にとって重要でした]

ライブラリのアプローチは、ディメンションからユニットまでです。これまでに見たすべてのユニットは、ユニットのみのアプローチです。

于 2009-06-14T23:02:27.850 に答える
1

私はエイダがそれを持っていると確信しています。

于 2008-09-20T05:36:09.703 に答える
0

ほとんどの動的言語 (javascript、python、ruby)で、いくつかの基本クラスに慎重にモンキー パッチを適用することで、これを実行できると確信しています。ただし、帝国単位で作業する場合、問題が発生する可能性があります。

于 2008-11-17T00:27:02.590 に答える