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

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

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

Returns the index of the first element for which the given function returns true.

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

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

Syntax

// Signature:
Seq.findIndex : ('T -> bool) -> seq<'T> -> int

// Usage:
Seq.findIndex predicate source

Parameters

predicate Type: 'T ->bool

A function to test whether the index of a particular element should be returned.

source Type: seq<'T>

The input sequence.

Exceptions

ExceptionCondition
ArgumentNullExceptionThrown when the input sequence is null
KeyNotFoundExceptionThrown if no element returns true when evaluated by the predicate

Return Value

The index of the first element for which the given function returns true.

Remarks

This function is named FindIndex 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.findIndex.


    let seqA = [| 2 .. 100 |]
    let delta = 1.0e-10
    let isPerfectSquare (x:int) =
        let y = sqrt (float x)
        abs(y - round y) < delta
    let isPerfectCube (x:int) =
        let y = System.Math.Pow(float x, 1.0/3.0)
        abs(y - round y) < delta
    let element = Seq.find (fun elem -> isPerfectSquare elem && isPerfectCube elem) seqA
    let index = Seq.findIndex (fun elem -> isPerfectSquare elem && isPerfectCube elem) seqA
    printfn "The first element that is both a square and a cube is %d and its index is %d." element index

Output

The first element that is both a square and a cube is 64 and its index is 62.

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