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

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -