Cette question est étroitement liée à celles-ci (1, 2, 3)F # Ununit - reunit dans une fonction
J'utilise une bibliothèque externe qui doens't (encore) gérer les unités de mesure. Je veux pouvoir «ununir» les valeurs avant de les transmettre, puis les «réunir» quand je récupère les résultats. Le hic, c'est que je voudrais éviter d'être obligé de déclarer QUELLES unités à l'avance.
Exemple d'extrait
let ExternalNonUnitAwareFunction s = s + 1.
let MyUnitAwareClient (s:float<'u>) = //'
//1. this option "flattens" to no unit, or fixes to first inferred unit
//let (unit:float<'u>) = 1.0<_>
//2. this works fine, except for 0!
let unit = s/(float s)
s |> float |> ExternalNonUnitAwareFunction |> (*) unit
Je n'ai pas réussi à déterminer comment gérer celui-ci ...
Mise à jour Si je understood correctly, la version finale de F # comprendra des fonctions pour faire ça.
Le CTP mai/2010 Beta 1 version a des unités de mesure support pour les types intégraux signés - voir http://blogs.msdn.com/dsyme/archive/2009/05/20/detailed-release-notes-for-the-f-may-2009-ctp-update-and- visual-studio-2010-beta1-releases.aspx –