Pregunta

Estaba leyendo la serie de publicaciones del blog de Andrew Kennedy sobre unidades de medida en F# y tiene mucho sentido en muchos casos.¿Existen otros idiomas que tengan dicho sistema?

Editar:Para ser más claro, me refiero al sistema de unidades de medida flexibles en el que puedes definir el tuyo propio de forma arbitraria.

¿Fue útil?

Solución

¿Cuenta la TI-89 BASIC?Ingresar 54_kg * (_c^2) y te dará una respuesta en julios.

Aparte de eso, no recuerdo ningún idioma que lo tenga integrado, pero cualquier idioma con OO decente debería facilitar el desarrollo del suyo propio.Lo que significa que probablemente alguien más ya lo hizo.

Google lo confirma.Por ejemplo, aquí hay uno en Python. __repr__ podría modificarse fácilmente para seleccionar también la unidad derivada más apropiada, etc.

CPAN tiene varios módulos para Perl: Física::Unidad, Datos::Dimensiones, Clase::Medida, Matemáticas::Unidades::Valor físico, y algunos otros que convertirán pero que en realidad no combinan valores con unidades.

Otros consejos

C++ lo tiene, en forma de impulso::unidades.

No estoy seguro si esto realmente cuenta, pero el RPL El sistema de mi calculadora HP-48 tiene características similares.puedo escribir 40_gal 5_l + y obtenga la respuesta correcta de 156.416 litros.

Creo que vi eso Fortaleza apoye esto, veré si puedo encontrar un enlace.

No puedo encontrar un enlace específico, pero la especificación del idioma lo menciona en un par de lugares.La especificación del lenguaje 1.0 también dice que las dimensiones y unidades se eliminaron temporalmente de la especificación (junto con un montón de otras características) para que coincidan con la implementación actual.Es un trabajo en progreso, así que supongo que las cosas están cambiando.

F# es el primer lenguaje convencional que admite esta característica.

También existe una especificación Java para unidades en http://jcp.org/en/jsr/detail?id=275 y ya puedes usarlo desde aquí http://jscience.org/

¡Nemerle tiene algo mucho mejor que F#!

Deberías comprobar este: http://rsdn.ru/forum/src/1823225.flat.aspx#1823225 .

Es realmente genial.Y puedes descargarlo aquí: http://rsdn.ru/File/27948/Oyster.Units.0.06.zip

Algún ejemplo:

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

Bueno, creé la biblioteca QuantitySystem especialmente para unidades en C#, sin embargo, no es una verificación del tiempo de compilación.

pero he intentado hacerlo funcionar como quería

También admite la expansión para que pueda definir sus unidades únicas.

http://QuantitySystem.CodePlex.com

también puede diferenciar entre Torque y Trabajo :) [Esto fue importante para mí]

El enfoque de la biblioteca es de la dimensión a las unidades, todo lo que he visto hasta ahora solo unidades.

Estoy bastante seguro de que Ada lo tiene.

Estoy seguro de que podrás hacer esto con la mayoría de los lenguajes dinámicos (javascript, python, ruby) si con cuidado parchear algunas de las clases base.Sin embargo, es posible que tengas problemas al trabajar con medidas imperiales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top