Başka bir parametreden genel ölçü birimi cinsinden tanımlanmış genel bir ölçü birimine sahip bir parametresi olan bir operatör tanımlanırken F # Ölçü Birimleri ile ilgili bir sorun yaşıyorum. Örneğin:F # birbirinden bağımsız olarak tanımlanmış parametrelerdeki jenerik birimler
Buradatype Quotient<[<Measure>]'b> =
| Divisible of int64<'b>
| Remaindered of int64<'b> * int64<'b>
let (|/) (x: int64<'a>) (y: int64<'a/'b>) =
let q = x/y
if q * y = x then Divisible q else Remaindered (q, x - (q * y))
, y
<'a>
x
birimidir <'a/'b>
, tanımlanmıştır. (|/)
türünün int64<'a> -> int64<'a/'b> -> Quotient<'b>
olmasını bekliyorum, ancak derleyici bana türün x:int64<'b> -> y:int64 -> Quotient<'b>
olduğunu söylüyor.
Ondalık sayıların mümkün olmadığı yerlerde bu tür dönüşümler için kullanmak istiyorum. Amacım, her tür dönüşümde geri kalanını hesaplamak için mantığı koymak yerine, Bölümler ile çalışacak operatörler yaratmaktı. Bu hedefe ulaşmak mümkün mü yoksa tip dönüşümlerime farklı bir şekilde gitmeli miyim?