Seq.windowed<'T> Function (F#)
Returns a sequence that yields sliding windows of containing elements drawn from the input sequence. Each window is returned as a fresh array.
Namespace/Module Path: Microsoft.FSharp.Collections.Seq
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
Seq.windowed : int -> seq<'T> -> seq<'T []>
// Usage:
Seq.windowed windowSize source
Parameters
windowSize
Type: intThe number of elements in each window.
source
Type: seq<'T>The input sequence.
Exceptions
Exception |
Condition |
---|---|
Thrown when the input sequence is empty. |
|
Thrown when the input sequence is null. |
Return Value
The result sequence.
Remarks
This function is named Windowed in compiled assemblies. If you are accessing the function from a language other than F#, or through reflection, use this name.
Example
The following example demonstrates the use of Seq.windowed as part of a computation of a moving average for a sequence of numbers.
let seqNumbers = [ 1.0; 1.5; 2.0; 1.5; 1.0; 1.5 ] :> seq<float>
let seqWindows = Seq.windowed 3 seqNumbers
let seqMovingAverage = Seq.map Array.average seqWindows
printfn "Initial sequence: "
printSeq seqNumbers
printfn "\nWindows of length 3: "
printSeq seqWindows
printfn "\nMoving average: "
printSeq seqMovingAverage
Initial sequence: 1.0 1.5 2.0 1.5 1.0 1.5 Windows of length 3: [|1.0; 1.5; 2.0|] [|1.5; 2.0; 1.5|] [|2.0; 1.5; 1.0|] [|1.5; 1.0; 1.5|] Moving average: 1.5 1.666666667 1.5 1.333333333
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