What is the difference between the generic signifier ' and the symbol ^ In F# method signatures -
i understand tick signify generic parameter, in:
seq.append : seq<'t> -> seq<'t> -> seq<'t>
but caret signify, in:
seq.average : seq<^t> -> ^t
the detailed signature is:
seq.average : seq<^t> -> ^t (requires ^t static member (+) , ^t static member dividebyint , ^t static member zero)
unlike seq.append
, seq.average needs more constraints on type of elements. particularly:
_ dividebyint (s1 + s2 + ... + sn) n n <> 0 seq.average {s1; s2;...; sn} = / \_ ^t.zero n = 0
as can see, both (+)
, dividebyint
, zero
required in order seq.average<^t>
makes sense.
useful information generics found heremsdn.
Comments
Post a Comment