Mi chiedevo solo come sia possibile scrivere una funzione radice quadrata (sqrt) definita dall'utente in modo che interagisca correttamente con il numero unit system di F #.Radici quadrate sicure per le unità
quello che dovrebbe essere simile:
let sqrt (x : float<'u^2>) = let x' = x/1.0<'u^2> // Delete unit (x ** 0.5) * 1.0<'u> // Reassign unit
Ma questo non è consentito a causa di costanti non nulli non avere il permesso di avere unità generiche.
C'è un modo per scrivere questa funzione? Con l'integrato sqrt
funziona bene, quindi che magia esegue?
Domanda correlata: (risposta anche da @kvb) http://stackoverflow.com/questions/1398611/f-ununit-reunit-inside-a-function – Benjol