Seq.averageBy<'T,^U> Function (F#)
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