Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Returns the average of the results generated by applying the function to each element of the sequence.
Namespace/Module Path: Microsoft.FSharp.Collections.Seq
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
Seq.averageBy : ('T -> ^U) -> seq<'T> -> ^U (requires ^U with static member (+) and ^U with static member DivideByInt and ^U with static member Zero)
// Usage:
Seq.averageBy projection source
Parameters
projection
Type: 'T -> ^UA function applied to transform each element of the sequence.
source
Type: seq<'T>The input sequence.
Exceptions
Exception |
Condition |
---|---|
Thrown when the input sequence has zero elements. |
|
Thrown when the input sequence is null. |
Return Value
The average of the results of applying the projection function to sequence elements.
Remarks
The elements are averaged using the + operator, DivideByInt method and Zero property associated with the generated type.
This function is named AverageBy in compiled assemblies. If you are accessing the function from a language other than F#, or through reflection, use this name.
Example
The following code example shows how to use Seq.averageBy,also compares Seq.average and Seq.averageBy.
// You can use Seq.average to average elements of a list, array, or sequence.
let average1 = Seq.average [ 1.0 .. 10.0 ]
printfn "Average: %f" average1
// To average a sequence of integers, use Seq.averageBy to convert to float.
let average2 = Seq.averageBy (fun elem -> float elem) (seq { 1 .. 10 })
printfn "Average: %f" average2
Output
Average: 5.500000 Average: 5.500000
Platforms
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Version Information
F# Runtime
Supported in: 2.0, 4.0
Silverlight
Supported in: 3