¿Alguien ha tenido la oportunidad de investigar cómo funciona F# Units of Measure? ¿Es solo trapacería basada en tipos, o hay tipos CLR escondidos debajo que podrían (potencialmente) ser utilizados desde otros lenguajes .net? ¿Funcionará para cualquier unidad numérica, o está limitada a valores de punto flotante (que es lo que usan todos los ejemplos)?¿Cómo funcionan las unidades de medida F #?
Respuesta
De acuerdo con response en la siguiente publicación de blog relacionada, son un mecanismo puramente estático en el compilador F #. Entonces, no hay representación CLR de los datos de las unidades.
No está del todo claro si actualmente funciona con tipos no flotantes, pero desde la perspectiva del sistema de tipos es teóricamente posible.
Vea la última publicación de blog de Andrew Kennedy (en la respuesta a continuación), la UOM está disponible para cualquier tipo numérico, así como para los tipos compuestos. – Benjol
El mejor (y creo que oficial) lugar para conocer esto es en el blog de Andrew Kennedy.
Aquí están las publicaciones relevantes (actuales).
- Units of Measure in F#: Part One, Introducing Units
- Units of Measure in F#: Part Two, Unit Conversions
- Units of Measure in F#: Part Three, Generic Units
- Units of Measure in F#: Part Four, Parameterized Types
Como dije en el post que a su contestador refiere, esto es sin duda algo que no se puede hacer en C# (aunque desearía que pudieras).
- 1. ¿Las unidades de medida son exclusivas de F #?
- 2. ¿Cómo se representan las unidades de medida?
- 3. ¿Deben localizarse las unidades de medida?
- 4. UOM (unidades de medida) patrones de diseño
- 5. Restricciones de tiempo de compilación para cadenas en F #, similares a las Unidades de medida: ¿es posible?
- 6. ¿Cómo evito que Sass agregue espacios antes de las unidades de medida?
- 7. ¿Cómo se eliminan las unidades de medida de una ecuación Sass mixin?
- 8. Uso de tipos C# para expresar unidades de medida
- 9. ¿Qué unidades de medida usan Silverlight y WPF?
- 10. ¿Cómo puedo definir un miembro de extensión en una unidad de medida F #?
- 11. ¿Cómo creo un convertidor genérico para unidades de medida en C#?
- 12. ¿Cómo funcionan las cookies?
- 13. ¿Cómo funcionan las pasarelas API?
- 14. ¿Cómo funcionan las claves externas?
- 15. Java: cómo funcionan las matrices
- 16. ¿Cómo funcionan las funciones trigonométricas?
- 17. ¿Cómo funcionan las pasarelas SMS?
- 18. ¿Cómo funcionan las declaraciones preparadas?
- 19. ¿Hay alguna solución para traducir unidades de medida en los rieles?
- 20. ¿Cómo funcionan las relaciones simples de SQLAlchemy?
- 21. ¿Cómo funcionan las bases de datos internamente?
- 22. cómo funcionan las notificaciones de Facebook?
- 23. ¿Cómo funcionan las anotaciones de usuario?
- 24. ¿Cómo funcionan las anotaciones de datos?
- 25. ¿Cómo funcionan las rutas de artefactos Teamcity?
- 26. ¿Cómo funcionan las expresiones de consulta web2py?
- 27. ¿Cómo funcionan las sesiones de Spring Security?
- 28. ¿Cómo funcionan las líneas de caché?
- 29. ¿Cómo funcionan las clases de atributos?
- 30. ¿Cómo funcionan las implementaciones de BigNums?
Eche un vistazo a la calculadora Frink y al lenguaje de programación Frink. –