Table of contents
TOC
Collapse the table of content
Expand the table of content

Seq.pairwise<'T> Function (F#)

Den Delimarsky|Last Updated: 7/25/2016
|
1 Contributor

Returns a sequence of each element in the input sequence and its predecessor, with the exception of the first element which is only returned as the predecessor of the second element.

Namespace/Module Path: Microsoft.FSharp.Collections.Seq

Assembly: FSharp.Core (in FSharp.Core.dll)

Syntax

// Signature:
Seq.pairwise : seq<'T> -> seq<'T * 'T>

// Usage:
Seq.pairwise source

Parameters

source Type: seq<'T>

The input sequence.

Exceptions

ExceptionCondition
ArgumentNullExceptionThrown when the input sequence is null.

Return Value

The result sequence.

Remarks

This function is named Pairwise 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.pairwise. The initial sequence is a sequence of squares up to 100. The Seq.pairwise function generates a sequence of tuples of consecutive squares, { (1, 4), (4, 9), (9, 16) ... }. The second part of the example produces a list of the differences in each pair of squares.


    let printSeq seq1 = Seq.iter (printf "%A ") seq1; printfn ""
    let seqPairwise = Seq.pairwise (seq { for i in 1 .. 10 -> i*i })
    printSeq seqPairwise

    printfn ""
    let seqDelta = Seq.map (fun elem -> snd elem - fst elem) seqPairwise
    printSeq seqDelta
(1, 4) (4, 9) (9, 16) (16, 25) (25, 36) (36, 49) (49, 64) (64, 81) (81, 100)
3 5 7 9 11 13 15 17 19

Platforms

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Version Information

F# Core Library Versions

Supported in: 2.0, 4.0, Portable

See Also

Collections.Seq Module (F#)

Microsoft.FSharp.Collections Namespace (F#)

© 2016 Microsoft