Je me demandais simplement comment il est possible d'écrire une fonction racine carrée définie par l'utilisateur (sqrt) de manière à interagir correctement avec les unit system de F #.Racines carrées sécurisées en unité
Ce qu'il devrait être comme:
let sqrt (x : float<'u^2>) = let x' = x/1.0<'u^2> // Delete unit (x ** 0.5) * 1.0<'u> // Reassign unit
Mais ce n'est pas autorisée en raison de constantes non nulles ne sont pas autorisés à avoir des unités génériques.
Existe-t-il un moyen d'écrire cette fonction? Avec le sqrt
intégré ça fonctionne bien, alors quelle magie fait-il?
Question connexe: (également répondu par @kvb) http://stackoverflow.com/questions/1398611/f-ununit-reunit-inside-a-function – Benjol