Kullanıcı tanımlı bir kare kök işlevi (sqrt), F # 'nin unit system ile doğru şekilde etkileşime girecek şekilde nasıl yazılabileceğini merak ettim.Birim güvenli kare kökleri
o gibi olmalıdır Ne:
let sqrt (x : float<'u^2>) = let x' = x/1.0<'u^2> // Delete unit (x ** 0.5) * 1.0<'u> // Reassign unit
Ama bu nedeniyle sıfırdan farklı sabitler jenerik birimleri sahip izin verilmemesi izin verilmez.
Bu işlevi yazmanın bir yolu var mı? Yerleşik sqrt
ile iyi çalışıyor, bu yüzden sihir ne yapıyor?
İlgili soru: (ayrıca Kvb tarafından yanıtlanmıştır) http://stackoverflow.com/questions/1398611/f-ununit-reunit-inside-a-function – Benjol