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

Array.find<'T> Function (F#)

Den Delimarsky|Last Updated: 6/8/2016
|
1 Contributor

Returns the first element for which the given function returns true. Raise KeyNotFoundException if no such element exists.

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

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

Syntax


// Signature:
Array.find : ('T -> bool) -> 'T [] -> 'T

// Usage:
Array.find predicate array

Parameters

predicate Type: 'T ->bool

The function to test the input elements.

array Type: 'T[]

The input array.

Exceptions

ExceptionCondition
KeyNotFoundExceptionThrown if predicate does not return true for any element.

Return Value

The first element for which predicate returns true.

Remarks

This function is named Find 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 Array.find and Array.findIndex to identify the first integer greater than 1 that is both a square and a cube.


let arrayA = [| 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 = Array.find (fun elem -> isPerfectSquare elem && isPerfectCube elem) arrayA
let index = Array.findIndex (fun elem -> isPerfectSquare elem && isPerfectCube elem) arrayA
printfn "The first element that is both a square and a cube is %d and its index is %d." element index
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.Array Module (F#)

Microsoft.FSharp.Collections Namespace (F#)

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

© 2016 Microsoft