سؤال

كنت أقرأ سلسلة منشورات مدونة أندرو كينيدي حول وحدات القياس في F# وهذا منطقي جدًا في كثير من الحالات.هل هناك لغات أخرى لديها مثل هذا النظام؟

يحرر:لكي أكون أكثر وضوحًا، أعني الوحدات المرنة لنظام القياس حيث يمكنك تحديد الوحدات الخاصة بك بشكل تعسفي.

هل كانت مفيدة؟

المحلول

هل يعتبر TI-89 BASIC؟يدخل 54_kg * (_c^2) وسوف يعطيك الجواب بالجول.

بخلاف ذلك، لا أستطيع تذكر أي لغة تم تضمينها فيها، ولكن أي لغة ذات OO لائقة يجب أن تجعل من السهل إنشاء لغتك الخاصة.مما يعني أن شخصًا آخر ربما فعل ذلك بالفعل.

تؤكد جوجل.على سبيل المثال، وهنا واحد في بايثون. __repr__ يمكن تعديلها بسهولة أيضًا لتحديد الوحدة المشتقة الأكثر ملاءمة، وما إلى ذلك.

يحتوي CPAN على عدة وحدات لـ Perl: الفيزياء::الوحدة, البيانات::الأبعاد, الدرجة::قياس, الرياضيات::الوحدات::القيمة الفيزيائية, ، وحفنة من الآخرين الذين سيتم تحويلهم ولكنهم لا يجمعون بين القيم والوحدات.

نصائح أخرى

C++ لديه ذلك، في شكل دفعة::وحدات.

لست متأكدًا مما إذا كان هذا مهمًا حقًا، ولكن RPL يحتوي النظام الموجود على الآلة الحاسبة HP-48 على ميزات مشابهة.أستطيع أن أكتب 40_gal 5_l + واحصل على الإجابة الصحيحة وهي 156.416 لترًا.

أعتقد أنني رأيت ذلك قلعة دعم هذا، سأرى إذا كان بإمكاني العثور على الرابط.

لا يمكنني العثور على رابط محدد، ولكن مواصفات اللغة تذكره في مكانين.تنص مواصفات اللغة 1.0 أيضًا على أنه تم إسقاط الأبعاد والوحدات مؤقتًا من المواصفات (إلى جانب مجموعة كاملة من الميزات الأخرى) لتتوافق مع التنفيذ الحالي.إنه عمل مستمر، لذا أعتقد أن الأمور في حالة تغير مستمر.

F# هي اللغة السائدة الأولى التي تدعم هذه الميزة.

هناك أيضًا مواصفات Java للوحدات في http://jcp.org/en/jsr/detail?id=275 ويمكنك استخدامه بالفعل من هنا http://jscience.org/

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");

حسنًا، لقد قمت بإنشاء مكتبةQuantitySystem خصيصًا للوحدات الموجودة في C#، ولكن لا يتم التحقق من وقت التجميع

ولكنني حاولت أن أجعله يعمل كما أردت

كما أنه يدعم التوسع حتى تتمكن من تحديد وحداتك الفريدة

http://QuantitySystem.CodePlex.com

كما يمكنه التفريق بين عزم الدوران والعمل :) [كان هذا مهمًا بالنسبة لي]

نهج المكتبة هو من الأبعاد إلى الوحدات كل ما رأيته حتى الآن الوحدات تقترب فقط.

أنا متأكد من أن آدا لديها ذلك.

أنا متأكد من أنك ستكون قادرًا على القيام بذلك باستخدام معظم اللغات الديناميكية (javascript، python، Ruby) عن طريق بحرص ترقيع القرد لبعض الطبقات الأساسية.قد تواجه مشاكل عند العمل مع القياسات الإمبراطورية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top