F #의 unit system과 올바르게 상호 작용하는 방식으로 사용자 정의 제곱근 함수 (sqrt)를 작성하는 것이 가능한지 궁금했습니다.단위 안전 사각형 뿌리
이 같아야하는 것 :
let sqrt (x : float<'u^2>) = let x' = x/1.0<'u^2> // Delete unit (x ** 0.5) * 1.0<'u> // Reassign unit
그러나 이것은 인해 제로가 아닌 상수가 일반적인 단위을 가질 수되지 허용되지 않습니다.
이 함수를 작성하는 방법이 있습니까? sqrt
이 내장되어 정상적으로 작동하므로 어떤 마법을 수행 할 수 있습니까?
관련 질문 : (또한 답장이 @kvb) http://stackoverflow.com/questions/1398611/f-ununit-reunit-inside-a-function – Benjol