मुझे आश्चर्य हुआ कि उपयोगकर्ता द्वारा परिभाषित वर्ग रूट फ़ंक्शन (वर्ग) को इस तरह से लिखना संभव है कि यह F # के unit system के साथ ठीक से इंटरैक्ट करता है।यूनिट-सुरक्षित वर्ग जड़ें
यह कैसा होना चाहिए:
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