A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://fsharp.github.io/fsharp-core-docs/reference/fsharp-collections-arraymodule.html below:

Array (FSharp.Core) | FSharp.Core

Returns a new array that contains all pairings of elements from the first and second arrays.

array1 : 'T1 array

The first input array.

array2 : 'T2 array

The second input array.

Returns: ('T1 * 'T2) array

The resulting array of pairs.

 ([| 1; 2 |], [| 3; 4 |]) ||> Array.allPairs

module Array from Microsoft.FSharp.Collections

val allPairs: array1: 'T1 array -> array2: 'T2 array -> ('T1 * 'T2) array

Evaluates to
 [| (1, 3); (1, 4); (2, 3); (2, 4) |]

Builds a new array that contains the elements of the first array followed by the elements of the second array.

array1 : 'T array

The first input array.

array2 : 'T array

The second input array.

Returns: 'T array

The resulting array.

 Array.append [| 1; 2 |] [| 3; 4 |]

module Array from Microsoft.FSharp.Collections

val append: array1: 'T array -> array2: 'T array -> 'T array

Evaluates to [| 1; 2; 3; 4 |].

Returns the average of the elements in the array.

array : ^T array

The input array.

Returns: ^T

The average of the elements in the array.

 [| 1.0; 2.0; 6.0 |] |> Array.average

module Array from Microsoft.FSharp.Collections

val average: array: 'T array -> 'T (requires member (+) and member DivideByInt and member Zero)

Evaluates to 3.0
 [| |] |> Array.average

module Array from Microsoft.FSharp.Collections

val average: array: 'T array -> 'T (requires member (+) and member DivideByInt and member Zero)

Throws ArgumentException

Returns the average of the elements generated by applying the function to each element of the array.

projection : 'T -> ^U

The function to transform the array elements before averaging.

array : 'T array

The input array.

Returns: ^U

The computed average.

 type Foo = { Bar: float }

 let input = [| {Bar = 2.0}; {Bar = 4.0} |]

 input |> Array.averageBy (fun foo -> foo.Bar)

type Foo = { Bar: float }

Multiple items

val float: value: 'T -> float (requires member op_Explicit)

--------------------

type float = System.Double

--------------------

type float<'Measure> = float

val input: Foo array

module Array from Microsoft.FSharp.Collections

val averageBy: projection: ('T -> 'U) -> array: 'T array -> 'U (requires member (+) and member DivideByInt and member Zero)

val foo: Foo

Foo.Bar: float

Evaluates to 3.0
 type Foo = { Bar: float }

 let input : Foo array = [| |]

 input |> Array.averageBy (fun foo -> foo.Bar)

type Foo = { Bar: float }

Multiple items

val float: value: 'T -> float (requires member op_Explicit)

--------------------

type float = System.Double

--------------------

type float<'Measure> = float

val input: Foo array

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val averageBy: projection: ('T -> 'U) -> array: 'T array -> 'U (requires member (+) and member DivideByInt and member Zero)

val foo: Foo

Foo.Bar: float

Throws ArgumentException

Reads a range of elements from the first array and write them into the second.

 let source = [| 12; 13; 14 |]
 let target = [| 0; 1; 2; 3; 4; 5 |]
 target[3..4] <- source[1..2]

val source: int array

val target: int array

source : 'T array

The source array.

sourceIndex : int

The starting index of the source array.

target : 'T array

The target array.

targetIndex : int

The starting index of the target array.

count : int

The number of elements to copy.

ArgumentNullException Thrown when either of the input arrays is null. ArgumentException Thrown when any of sourceIndex, targetIndex or count are negative, or when there aren't enough elements in source or target.
 let source = [| 12; 13; 14 |]
 let target = [| 0; 1; 2; 3; 4; 5 |]

 Array.blit source 1 target 3 2

val source: int array

val target: int array

module Array from Microsoft.FSharp.Collections

val blit: source: 'T array -> sourceIndex: int -> target: 'T array -> targetIndex: int -> count: int -> unit

After evaluation target contains [| 0; 1; 2; 13; 14; 5 |].

Applies the given function to each element of the array. Returns the array comprised of the results x for each element where the function returns Some(x)

chooser : 'T -> 'U option

The function to generate options from the elements.

array : 'T array

The input array.

Returns: 'U array

The array of results.

 let input = [| Some 1; None; Some 2 |]

 input |> Array.choose id

val input: int option array

union case Option.Some: Value: 'T -> Option<'T>

union case Option.None: Option<'T>

module Array from Microsoft.FSharp.Collections

val choose: chooser: ('T -> 'U option) -> array: 'T array -> 'U array

val id: x: 'T -> 'T

Evaluates to [| 1; 2 |]
 let input = [| 1; 2; 3 |]

 input |> Array.choose (fun n -> if n % 2 = 0 then Some n else None)

val input: int array

module Array from Microsoft.FSharp.Collections

val choose: chooser: ('T -> 'U option) -> array: 'T array -> 'U array

val n: int

union case Option.Some: Value: 'T -> Option<'T>

union case Option.None: Option<'T>

Evaluates to [| 2 |]

Divides the input array into chunks of size at most chunkSize.

chunkSize : int

The maximum size of each chunk.

array : 'T array

The input array.

Returns: 'T array array

The array divided into chunks.

 let input = [| 1; 2; 3 |]

 input |> Array.chunkBySize 2

val input: int array

module Array from Microsoft.FSharp.Collections

val chunkBySize: chunkSize: int -> array: 'T array -> 'T array array

Evaluates to [| [|1; 2|]; [|3|] |]
 let input = [| 1; 2; 3 |]

 input |> Array.chunkBySize -2

val input: int array

module Array from Microsoft.FSharp.Collections

val chunkBySize: chunkSize: int -> array: 'T array -> 'T array array

Throws ArgumentException

For each element of the array, applies the given function. Concatenates all the results and return the combined array.

mapping : 'T -> 'U array

The function to create sub-arrays from the input array elements.

array : 'T array

The input array.

Returns: 'U array

The concatenation of the sub-arrays.

 type Foo = { Bar: int array }

 let input = [| {Bar = [| 1; 2 |]}; {Bar = [| 3; 4 |]} |]

 input |> Array.collect (fun foo -> foo.Bar)

type Foo = { Bar: int array }

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

type 'T array = 'T array

val input: Foo array

module Array from Microsoft.FSharp.Collections

val collect: mapping: ('T -> 'U array) -> array: 'T array -> 'U array

val foo: Foo

Foo.Bar: int array

Evaluates to [| 1; 2; 3; 4 |]
 let input = [[1; 2]; [3; 4]]

 input |> Array.collect id

val input: int list list

module Array from Microsoft.FSharp.Collections

val collect: mapping: ('T -> 'U array) -> array: 'T array -> 'U array

val id: x: 'T -> 'T

Evaluates to [| 1; 2; 3; 4 |]

Compares two arrays using the given comparison function, element by element.

comparer : 'T -> 'T -> int

A function that takes an element from each array and returns an int. If it evaluates to a non-zero value iteration is stopped and that value is returned.

array1 : 'T array

The first input array.

array2 : 'T array

The second input array.

Returns: int

Returns the first non-zero result from the comparison function. If the first array has a larger element, the return value is always positive. If the second array has a larger element, the return value is always negative. When the elements are equal in the two arrays, 1 is returned if the first array is longer, 0 is returned if they are equal in length, and -1 is returned when the second array is longer.

 let closerToNextDozen a b =
   (a % 12).CompareTo(b % 12)

 let input1 = [| 1; 10 |]
 let input2 = [| 1; 10 |]

 (input1, input2) ||> Array.compareWith closerToNextDozen

val closerToNextDozen: a: int -> b: int -> int

val a: int

val b: int

val input1: int array

val input2: int array

module Array from Microsoft.FSharp.Collections

val compareWith: comparer: ('T -> 'T -> int) -> array1: 'T array -> array2: 'T array -> int

Evaluates to 0
 let closerToNextDozen a b =
   (a % 12).CompareTo(b % 12)

 let input1 = [| 1; 5 |]
 let input2 = [| 1; 8 |]

 (input1, input2) ||> Array.compareWith closerToNextDozen

val closerToNextDozen: a: int -> b: int -> int

val a: int

val b: int

val input1: int array

val input2: int array

module Array from Microsoft.FSharp.Collections

val compareWith: comparer: ('T -> 'T -> int) -> array1: 'T array -> array2: 'T array -> int

Evaluates to -1
 let closerToNextDozen a b =
   (a % 12).CompareTo(b % 12)

 let input1 = [| 1; 11 |]
 let input2 = [| 1; 13 |]

 (input1, input2) ||> Array.compareWith closerToNextDozen

val closerToNextDozen: a: int -> b: int -> int

val a: int

val b: int

val input1: int array

val input2: int array

module Array from Microsoft.FSharp.Collections

val compareWith: comparer: ('T -> 'T -> int) -> array1: 'T array -> array2: 'T array -> int

Evaluates to 1
 let closerToNextDozen a b =
   (a % 12).CompareTo(b % 12)

 let input1 = [| 1; 2 |]
 let input2 = [| 1 |]

 (input1, input2) ||> Array.compareWith closerToNextDozen

val closerToNextDozen: a: int -> b: int -> int

val a: int

val b: int

val input1: int array

val input2: int array

module Array from Microsoft.FSharp.Collections

val compareWith: comparer: ('T -> 'T -> int) -> array1: 'T array -> array2: 'T array -> int

Evaluates to 1
 let closerToNextDozen a b =
   (a % 12).CompareTo(b % 12)

 let input1 = [| 1 |]
 let input2 = [| 1; 2 |]

 (input1, input2) ||> Array.compareWith closerToNextDozen

val closerToNextDozen: a: int -> b: int -> int

val a: int

val b: int

val input1: int array

val input2: int array

module Array from Microsoft.FSharp.Collections

val compareWith: comparer: ('T -> 'T -> int) -> array1: 'T array -> array2: 'T array -> int

Evaluates to -1

Builds a new array that contains the elements of each of the given sequence of arrays.

arrays : 'T array seq

The input sequence of arrays.

Returns: 'T array

The concatenation of the sequence of input arrays.

 let inputs = [ [| 1; 2 |]; [| 3 |]; [| 4; 5 |] ]

 inputs |> Array.concat

val inputs: int array list

module Array from Microsoft.FSharp.Collections

val concat: arrays: 'T array seq -> 'T array

Evaluates to [| 1; 2; 3; 4; 5 |]

Tests if the array contains the specified element.

value : 'T

The value to locate in the input array.

array : 'T array

The input array.

Returns: bool

True if the input array contains the specified element; false otherwise.

 [| 1; 2 |] |> Array.contains 2 // evaluates to true
 [| 1; 2 |] |> Array.contains 5 // evaluates to false

module Array from Microsoft.FSharp.Collections

val contains: value: 'T -> array: 'T array -> bool (requires equality)

Builds a new array that contains the elements of the given array.

array : 'T array

The input array.

Returns: 'T array

A copy of the input array.

 let source = [| 12; 13; 14 |]

 Array.copy source

val source: int array

module Array from Microsoft.FSharp.Collections

val copy: array: 'T array -> 'T array

Evaluates to a new array containing[| 12; 13; 14 |].

Applies a key-generating function to each element of an array and returns an array yielding unique keys and their number of occurrences in the original array.

projection : 'T -> 'Key

A function transforming each item of the input array into a key to be compared against the others.

array : 'T array

The input array.

Returns: ('Key * int) array

The result array.

 type Foo = { Bar: string }

 let inputs = [| {Bar = "a"}; {Bar = "b"}; {Bar = "a"} |]

 inputs |> Array.countBy (fun foo -> foo.Bar)

type Foo = { Bar: string }

Multiple items

val string: value: 'T -> string

--------------------

type string = System.String

val inputs: Foo array

module Array from Microsoft.FSharp.Collections

val countBy: projection: ('T -> 'Key) -> array: 'T array -> ('Key * int) array (requires equality)

val foo: Foo

Foo.Bar: string

Evaluates to [| ("a", 2); ("b", 1) |]

Creates an array whose elements are all initially the given value.

count : int

The length of the array to create.

value : 'T

The value for the elements.

Returns: 'T array

The created array.

 Array.create 4 "a"

module Array from Microsoft.FSharp.Collections

val create: count: int -> value: 'T -> 'T array

Evaluates to a new array containing[| "a"; "a"; "a"; "a" |].
 let cell = ref "a"
 let array = Array.create 2 cell
 cell.Value <- "b"

val cell: string ref

Multiple items

val ref: value: 'T -> 'T ref

--------------------

type 'T ref = Ref<'T>

Multiple items

val array: string ref array

--------------------

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val create: count: int -> value: 'T -> 'T array

property Ref.Value: string with get, set

Before evaluation of the last line, array contains[| { contents = "a"}; { contents = "a"} |]. After evaluation of the last line array contains[| { contents = "b"}; { contents = "b"} |]. Note each entry in the array is the same mutable cell object.

Returns an array that contains no duplicate entries according to generic hash and equality comparisons on the entries. If an element occurs multiple times in the array then the later occurrences are discarded.

array : 'T array

The input array.

Returns: 'T array

The result array.

 let input = [| 1; 1; 2; 3 |]

 input |> Array.distinct

val input: int array

module Array from Microsoft.FSharp.Collections

val distinct: array: 'T array -> 'T array (requires equality)

Evaluates to [| 1; 2; 3 |]

Returns an array that contains no duplicate entries according to the generic hash and equality comparisons on the keys returned by the given key-generating function. If an element occurs multiple times in the array then the later occurrences are discarded.

projection : 'T -> 'Key

A function transforming the array items into comparable keys.

array : 'T array

The input array.

Returns: 'T array

The result array.

 let inputs = [| {Bar = 1 };{Bar = 1}; {Bar = 2}; {Bar = 3} |]

 inputs |> Array.distinctBy (fun foo -> foo.Bar)

val inputs: obj array

module Array from Microsoft.FSharp.Collections

val distinctBy: projection: ('T -> 'Key) -> array: 'T array -> 'T array (requires equality)

val foo: obj

Evaluates to [| { Bar = 1 }; { Bar = 2 }; { Bar = 3 } |]

Returns an empty array of the given type.

Returns: 'T array

The empty array.

 Array.empty // Evaluates to [| |]

module Array from Microsoft.FSharp.Collections

val empty<'T> : 'T array

Returns the only element of the array.

array : 'T array

The input array.

Returns: 'T

The only element of the array.

 let inputs = [| "banana" |]

 inputs |> Array.exactlyOne

val inputs: string array

module Array from Microsoft.FSharp.Collections

val exactlyOne: array: 'T array -> 'T

Evaluates to banana
 let inputs = [| "pear"; "banana" |]

 inputs |> Array.exactlyOne

val inputs: string array

module Array from Microsoft.FSharp.Collections

val exactlyOne: array: 'T array -> 'T

Throws ArgumentException
 let inputs: int array = [| |]

 inputs |> Array.exactlyOne

val inputs: int array

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val exactlyOne: array: 'T array -> 'T

Throws ArgumentException

Returns a new list with the distinct elements of the input array which do not appear in the itemsToExclude sequence, using generic hash and equality comparisons to compare values.

itemsToExclude : 'T seq

A sequence whose elements that also occur in the input array will cause those elements to be removed from the result.

array : 'T array

An array whose elements that are not also in itemsToExclude will be returned.

Returns: 'T array

An array that contains the distinct elements of array that do not appear in itemsToExclude.

 let original = [| 1; 2; 3; 4; 5 |]
 let itemsToExclude = [| 1; 3; 5 |]

 original |> Array.except itemsToExclude

val original: int array

val itemsToExclude: int array

module Array from Microsoft.FSharp.Collections

val except: itemsToExclude: 'T seq -> array: 'T array -> 'T array (requires equality)

Evaluates to [| 2; 4 |]

Tests if any element of the array satisfies the given predicate.

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: bool

True if any result from predicate is true.

 let input = [| 1; 2; 3; 4; 5 |]

 input |> Array.exists (fun elm -> elm % 4 = 0)

val input: int array

module Array from Microsoft.FSharp.Collections

val exists: predicate: ('T -> bool) -> array: 'T array -> bool

val elm: int

Evaluates to true
 let input = [| 1; 2; 3; 4; 5 |]

 input |> Array.exists (fun elm -> elm % 6 = 0)

val input: int array

module Array from Microsoft.FSharp.Collections

val exists: predicate: ('T -> bool) -> array: 'T array -> bool

val elm: int

Evaluates to false

Tests if any pair of corresponding elements of the arrays satisfies the given predicate.

predicate : 'T1 -> 'T2 -> bool

The function to test the input elements.

array1 : 'T1 array

The first input array.

array2 : 'T2 array

The second input array.

Returns: bool

True if any result from predicate is true.

 let inputs1 = [| 1; 2 |]
 let inputs2 = [| 1; 2; 0 |]

 (inputs1, inputs2) ||> Array.exists2 (fun a b -> a > b)

val inputs1: int array

val inputs2: int array

module Array from Microsoft.FSharp.Collections

val exists2: predicate: ('T1 -> 'T2 -> bool) -> array1: 'T1 array -> array2: 'T2 array -> bool

val a: int

val b: int

Evaluates to false
 let inputs1 = [| 1; 4 |]
 let inputs2 = [| 1; 3; 5 |]

 (inputs1, inputs2) ||> Array.exists2 (fun a b -> a > b)

val inputs1: int array

val inputs2: int array

module Array from Microsoft.FSharp.Collections

val exists2: predicate: ('T1 -> 'T2 -> bool) -> array1: 'T1 array -> array2: 'T2 array -> bool

val a: int

val b: int

Evaluates to true

Fills a range of elements of the array with the given value.

target : 'T array

The target array.

targetIndex : int

The index of the first element to set.

count : int

The number of elements to set.

value : 'T

The value to set.

 let target = [| 0; 1; 2; 3; 4; 5 |]

 Array.fill target 3 2 100

val target: int array

module Array from Microsoft.FSharp.Collections

val fill: target: 'T array -> targetIndex: int -> count: int -> value: 'T -> unit

After evaluation target contains [| 0; 1; 2; 100; 100; 5 |].

Returns a new collection containing only the elements of the collection for which the given predicate returns "true".

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: 'T array

An array containing the elements for which the given predicate returns true.

 let inputs = [| 1; 2; 3; 4 |]

 inputs |> Array.filter (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val filter: predicate: ('T -> bool) -> array: 'T array -> 'T array

val elm: int

Evaluates to [| 2; 4 |]

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

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: 'T

The first element for which predicate returns true.

 let inputs = [| 1; 2; 3 |]

 inputs |> Array.find (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val find: predicate: ('T -> bool) -> array: 'T array -> 'T

val elm: int

Evaluates to 2
 let inputs = [| 1; 2; 3 |]

 inputs |> Array.find (fun elm -> elm % 6 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val find: predicate: ('T -> bool) -> array: 'T array -> 'T

val elm: int

Throws KeyNotFoundException

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

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: 'T

The last element for which predicate returns true.

 let inputs = [| 2; 3; 4 |]

 inputs |> Array.findBack (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val findBack: predicate: ('T -> bool) -> array: 'T array -> 'T

val elm: int

Evaluates to 4
 let inputs = [| 2; 3; 4 |]

 inputs |> Array.findBack (fun elm -> elm % 6 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val findBack: predicate: ('T -> bool) -> array: 'T array -> 'T

val elm: int

Throws KeyNotFoundException

Returns the index of the first element in the array that satisfies the given predicate. Raise KeyNotFoundException if none of the elements satisfy the predicate.

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: int

The index of the first element in the array that satisfies the given predicate.

 let inputs = [| 1; 2; 3; 4; 5 |]

 inputs |> Array.findIndex (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val findIndex: predicate: ('T -> bool) -> array: 'T array -> int

val elm: int

Evaluates to 1
 let inputs = [| 1; 2; 3; 4; 5 |]
 inputs |> Array.findIndex (fun elm -> elm % 6 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val findIndex: predicate: ('T -> bool) -> array: 'T array -> int

val elm: int

Throws KeyNotFoundException

Returns the index of the last element in the array that satisfies the given predicate. Raise KeyNotFoundException if none of the elements satisfy the predicate.

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: int

The index of the last element in the array that satisfies the given predicate.

 let inputs = [| 1; 2; 3; 4; 5 |]

 inputs |> Array.findIndex (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val findIndex: predicate: ('T -> bool) -> array: 'T array -> int

val elm: int

Evaluates to 3
 let inputs = [| 1; 2; 3; 4; 5 |]

 inputs |> Array.findIndex (fun elm -> elm % 6 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val findIndex: predicate: ('T -> bool) -> array: 'T array -> int

val elm: int

Throws KeyNotFoundException

Applies a function to each element of the collection, threading an accumulator argument through the computation. If the input function is f and the elements are i0...iN then computes f (... (f s i0)...) iN

folder : 'State -> 'T -> 'State

The function to update the state given the input elements.

state : 'State

The initial state.

array : 'T array

The input array.

Returns: 'State

The final state.

 type Charge =
     | In of int
     | Out of int

 let inputs = [| In 1; Out 2; In 3 |]

 (0, inputs) ||> Array.fold (fun acc charge ->
     match charge with
     | In i -> acc + i
     | Out o -> acc - o)

type Charge = | In of int | Out of int

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

val inputs: Charge array

union case Charge.In: int -> Charge

union case Charge.Out: int -> Charge

module Array from Microsoft.FSharp.Collections

val fold<'T,'State> : folder: ('State -> 'T -> 'State) -> state: 'State -> array: 'T array -> 'State

val acc: int

val charge: Charge

val i: int

val o: int

Evaluates to 2

Applies a function to pairs of elements drawn from the two collections, left-to-right, threading an accumulator argument through the computation. The two input arrays must have the same lengths, otherwise an ArgumentException is raised.

folder : 'State -> 'T1 -> 'T2 -> 'State

The function to update the state given the input elements.

state : 'State

The initial state.

array1 : 'T1 array

The first input array.

array2 : 'T2 array

The second input array.

Returns: 'State

The final state.

 type CoinToss = Head | Tails

 let data1 = [| Tails; Head; Tails |]
 let data2 = [| Tails; Head; Head |]

 (0, data1, data2) |||> Array.fold2 (fun acc a b ->
     match (a, b) with
     | Head, Head -> acc + 1
     | Tails, Tails -> acc + 1
     | _ -> acc - 1)

type CoinToss = | Head | Tails

val data1: CoinToss array

union case CoinToss.Tails: CoinToss

union case CoinToss.Head: CoinToss

val data2: CoinToss array

module Array from Microsoft.FSharp.Collections

val fold2<'T1,'T2,'State> : folder: ('State -> 'T1 -> 'T2 -> 'State) -> state: 'State -> array1: 'T1 array -> array2: 'T2 array -> 'State

val acc: int

val a: CoinToss

val b: CoinToss

Evaluates to 1

Applies a function to each element of the array, starting from the end, threading an accumulator argument through the computation. If the input function is f and the elements are i0...iN then computes f i0 (...(f iN s))

folder : 'T -> 'State -> 'State

The function to update the state given the input elements.

array : 'T array

The input array.

state : 'State

The initial state.

Returns: 'State

The state object after the folding function is applied to each element of the array.

 type Count =
   { Positive: int
     Negative: int
     Text: string }

 let sequence = [| 1; 0; -1; -2; 3 |]
 let initialState = {Positive = 0; Negative = 0; Text = "" }

 (sequence, initialState) ||> Array.foldBack (fun a acc  ->
     let text = acc.Text + " " + string a
     if a >= 0 then
         { acc with
             Positive = acc.Positive + 1
             Text = text }
     else
         { acc with
             Negative = acc.Negative + 1
             Text = text })

type Count = { Positive: int Negative: int Text: string }

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

Multiple items

val string: value: 'T -> string

--------------------

type string = System.String

val sequence: int array

val initialState: Count

module Array from Microsoft.FSharp.Collections

val foldBack: folder: ('T -> 'State -> 'State) -> array: 'T array -> state: 'State -> 'State

val a: int

val acc: Count

val text: string

Count.Text: string

Count.Positive: int

Count.Negative: int

Evaluates to
 { Positive = 2
   Negative = 3
   Text = " 3 -2 -1 0 1" }

namespace Microsoft.FSharp.Text

Apply a function to pairs of elements drawn from the two collections, right-to-left, threading an accumulator argument through the computation. The two input arrays must have the same lengths, otherwise an ArgumentException is raised.

folder : 'T1 -> 'T2 -> 'State -> 'State

The function to update the state given the input elements.

array1 : 'T1 array

The first input array.

array2 : 'T2 array

The second input array.

state : 'State

The initial state.

Returns: 'State

The final state.

Count the positives, negatives and accumulate some text from back to front:
 type Count =
   { Positive: int
     Negative: int
     Text: string }

 let inputs1 = [| -1; -2; -3 |]
 let inputs2 = [| 3; 2; 1 |]
 let initialState = {Positive = 0; Negative = 0; Text = ""}

 (inputs1, inputs2, initialState) |||> Array.foldBack2 (fun a b acc  ->
     let text = acc.Text + "(" + string a + "," + string b + ") "
     if a + b >= 0 then
         { acc with
             Positive = acc.Positive + 1
             Text = text }
     else
         { acc with
             Negative = acc.Negative + 1
             Text = text }
 )

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

namespace Microsoft.FSharp.Text

Multiple items

val string: value: 'T -> string

--------------------

type string = System.String

module Array from Microsoft.FSharp.Collections

val foldBack2: folder: ('T1 -> 'T2 -> 'State -> 'State) -> array1: 'T1 array -> array2: 'T2 array -> state: 'State -> 'State

Evaluates to
 { Positive = 2
   Negative = 1
   Text = "(-3,1) (-2,2) (-1,3) " }

namespace Microsoft.FSharp.Text

Tests if all elements of the array satisfy the given predicate.

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: bool

True if all of the array elements satisfy the predicate.

 let isEven a = a % 2 = 0

 [2; 42] |> Array.forall isEven // evaluates to true

 [1; 2] |> Array.forall isEven // evaluates to false

val isEven: a: int -> bool

val a: int

module Array from Microsoft.FSharp.Collections

val forall: predicate: ('T -> bool) -> array: 'T array -> bool

Tests if all corresponding elements of the array satisfy the given predicate pairwise.

predicate : 'T1 -> 'T2 -> bool

The function to test the input elements.

array1 : 'T1 array

The first input array.

array2 : 'T2 array

The second input array.

Returns: bool

True if all of the array elements satisfy the predicate.

 let inputs1 = [| 1; 2; 3 |]
 let inputs2 = [| 1; 2; 3 |]

 (inputs1, inputs2) ||> Array.forall2 (=)

val inputs1: int array

val inputs2: int array

module Array from Microsoft.FSharp.Collections

val forall2: predicate: ('T1 -> 'T2 -> bool) -> array1: 'T1 array -> array2: 'T2 array -> bool

Evaluates to true.
 let items1 = [| 2017; 1; 1 |]
 let items2 = [| 2019; 19; 8 |]

 (items1, items2) ||> Array.forall2 (=)

val items1: int array

val items2: int array

module Array from Microsoft.FSharp.Collections

val forall2: predicate: ('T1 -> 'T2 -> bool) -> array1: 'T1 array -> array2: 'T2 array -> bool

Evaluates to false.
 let items1 = [| 1; 2; 3 |]
 let items2 = [| 1; 2 |]

 (items1, items2) ||> Array.forall2 (=)

val items1: int array

val items2: int array

module Array from Microsoft.FSharp.Collections

val forall2: predicate: ('T1 -> 'T2 -> bool) -> array1: 'T1 array -> array2: 'T2 array -> bool

Throws ArgumentException.

Gets an element from an array.

array : 'T array

The input array.

index : int

The input index.

Returns: 'T

The value of the array at the given index.

 let inputs = [| "a"; "b"; "c" |]

 Array.get inputs 1

val inputs: string array

module Array from Microsoft.FSharp.Collections

val get: array: 'T array -> index: int -> 'T

Evaluates to "b"
 let inputs = [| "a"; "b"; "c" |]

 Array.get inputs 4

val inputs: string array

module Array from Microsoft.FSharp.Collections

val get: array: 'T array -> index: int -> 'T

Throws IndexOutOfRangeException

Applies a key-generating function to each element of an array and yields an array of unique keys. Each unique key contains an array of all elements that match to this key.

projection : 'T -> 'Key

A function that transforms an element of the array into a comparable key.

array : 'T array

The input array.

Returns: ('Key * 'T array) array

The result array.

 let inputs = [| 1; 2; 3; 4; 5 |]

 inputs |> Array.groupBy (fun n -> n % 2)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val groupBy: projection: ('T -> 'Key) -> array: 'T array -> ('Key * 'T array) array (requires equality)

val n: int

Evaluates to [| (1, [| 1; 3; 5 |]); (0, [| 2; 4 |]) |]

Returns the first element of the array.

array : 'T array

The input array.

Returns: 'T

The first element of the array.

 let inputs = [| "banana"; "pear" |]

 inputs |> Array.head

val inputs: string array

module Array from Microsoft.FSharp.Collections

val head: array: 'T array -> 'T

Evaluates to banana
 [| |] |> Array.head

module Array from Microsoft.FSharp.Collections

val head: array: 'T array -> 'T

Throws ArgumentException

Builds a new array whose elements are the corresponding elements of the input array paired with the integer index (from 0) of each element.

array : 'T array

The input array.

Returns: (int * 'T) array

The array of indexed elements.

 let inputs = [| "a"; "b"; "c" |]

 inputs |> Array.indexed

val inputs: string array

module Array from Microsoft.FSharp.Collections

val indexed: array: 'T array -> (int * 'T) array

Evaluates to [| (0, "a"); (1, "b"); (2, "c") |]

Creates an array given the dimension and a generator function to compute the elements.

count : int

The number of elements to initialize.

initializer : int -> 'T

The function to generate the initial values for each index.

Returns: 'T array

The created array.

 Array.init 4 (fun v -> v + 5)

module Array from Microsoft.FSharp.Collections

val init: count: int -> initializer: (int -> 'T) -> 'T array

val v: int

Evaluates to [| 5; 6; 7; 8 |]
 Array.init -5 (fun v -> v + 5)

module Array from Microsoft.FSharp.Collections

val init: count: int -> initializer: (int -> 'T) -> 'T array

val v: int

Throws ArgumentException

Return a new array with a new item inserted before the given index.

index : int

The index where the item should be inserted.

value : 'T

The value to insert.

source : 'T array

The input array.

Returns: 'T array

The result array.

 let inputs = [| 0; 1; 2 |]

 inputs |> Array.insertAt 1 9

val inputs: int array

module Array from Microsoft.FSharp.Collections

val insertAt: index: int -> value: 'T -> source: 'T array -> 'T array

Evaluates to [| 0; 9; 1; 2 |].

Return a new array with new items inserted before the given index.

index : int

The index where the items should be inserted.

values : 'T seq

The values to insert.

source : 'T array

The input array.

Returns: 'T array

A new array (even if values is empty).

 let inputs = [| 0; 1; 2 |]

 inputs |> Array.insertManyAt 1 [8; 9]

val inputs: int array

module Array from Microsoft.FSharp.Collections

val insertManyAt: index: int -> values: 'T seq -> source: 'T array -> 'T array

Evaluates to [| 0; 8; 9; 1; 2 |].

Returns true if the given array is empty, otherwise false.

array : 'T array

The input array.

Returns: bool

True if the array is empty.

 [| |] |> Array.isEmpty

module Array from Microsoft.FSharp.Collections

val isEmpty: array: 'T array -> bool

Evaluates to true
 [| "pear"; "banana" |] |> Array.isEmpty

module Array from Microsoft.FSharp.Collections

val isEmpty: array: 'T array -> bool

Evaluates to false

Gets an element from an array.

index : int

The input index.

array : 'T array

The input array.

Returns: 'T

The value of the array at the given index.

 let inputs = [| "a"; "b"; "c" |]

 inputs |> Array.item 1

val inputs: string array

module Array from Microsoft.FSharp.Collections

val item: index: int -> array: 'T array -> 'T

Evaluates to "b"
 let inputs = [| "a"; "b"; "c" |]

 inputs |> Array.item 4

val inputs: string array

module Array from Microsoft.FSharp.Collections

val item: index: int -> array: 'T array -> 'T

Throws ArgumentException

Applies the given function to each element of the array.

action : 'T -> unit

The function to apply.

array : 'T array

The input array.

 let inputs = [| "a"; "b"; "c" |]

 inputs |> Array.iter (printfn "%s")

val inputs: string array

module Array from Microsoft.FSharp.Collections

val iter: action: ('T -> unit) -> array: 'T array -> unit

val printfn: format: Printf.TextWriterFormat<'T> -> 'T

Evaluates to unit and prints
 a
 b
 c
in the console.

Applies the given function to pair of elements drawn from matching indices in two arrays. The two arrays must have the same lengths, otherwise an ArgumentException is raised.

action : 'T1 -> 'T2 -> unit

The function to apply.

array1 : 'T1 array

The first input array.

array2 : 'T2 array

The second input array.

 let inputs1 = [| "a"; "b"; "c" |]
 let inputs2 = [| 1; 2; 3 |]

 (inputs1, inputs2) ||> Array.iter2 (printfn "%s: %i")

val inputs1: string array

val inputs2: int array

module Array from Microsoft.FSharp.Collections

val iter2: action: ('T1 -> 'T2 -> unit) -> array1: 'T1 array -> array2: 'T2 array -> unit

val printfn: format: Printf.TextWriterFormat<'T> -> 'T

Evaluates to unit and prints
 a: 1
 b: 2
 c: 3
in the console.

Applies the given function to each element of the array. The integer passed to the function indicates the index of element.

action : int -> 'T -> unit

The function to apply to each index and element.

array : 'T array

The input array.

 let inputs = [| "a"; "b"; "c" |]

 inputs |> Array.iteri (fun i v -> printfn "{i}: {v}")

val inputs: string array

module Array from Microsoft.FSharp.Collections

val iteri: action: (int -> 'T -> unit) -> array: 'T array -> unit

val i: int

val v: string

val printfn: format: Printf.TextWriterFormat<'T> -> 'T

Evaluates to unit and prints
 0: a
 1: b
 2: c
in the console.

Applies the given function to pair of elements drawn from matching indices in two arrays, also passing the index of the elements. The two arrays must have the same lengths, otherwise an ArgumentException is raised.

action : int -> 'T1 -> 'T2 -> unit

The function to apply to each index and pair of elements.

array1 : 'T1 array

The first input array.

array2 : 'T2 array

The second input array.

 let inputs1 = [| "a"; "b"; "c" |]
 let inputs2 = [| "banana"; "pear"; "apple" |]

 (inputs1, inputs2) ||> Array.iteri2 (fun i s1 s2 -> printfn "Index {i}: {s1} - {s2}")

val inputs1: string array

val inputs2: string array

module Array from Microsoft.FSharp.Collections

val iteri2: action: (int -> 'T1 -> 'T2 -> unit) -> array1: 'T1 array -> array2: 'T2 array -> unit

val i: int

val s1: string

val s2: string

val printfn: format: Printf.TextWriterFormat<'T> -> 'T

Evaluates to unit and prints
 Index 0: a - banana
 Index 1: b - pear
 Index 2: c - apple
in the console.

Returns the last element of the array.

array : 'T array

The input array.

Returns: 'T

The last element of the array.

 [| "pear"; "banana" |] |> Array.last

module Array from Microsoft.FSharp.Collections

val last: array: 'T array -> 'T

Evaluates to banana
 [| |] |> Array.last

module Array from Microsoft.FSharp.Collections

val last: array: 'T array -> 'T

Throws ArgumentException

Returns the length of an array. You can also use property arr.Length.

array : 'T array

The input array.

Returns: int

The length of the array.

 let inputs = [| "a"; "b"; "c" |]

 inputs |> Array.length

val inputs: string array

module Array from Microsoft.FSharp.Collections

val length: array: 'T array -> int

Evaluates to 3

Builds a new array whose elements are the results of applying the given function to each of the elements of the array.

mapping : 'T -> 'U

The function to transform elements of the array.

array : 'T array

The input array.

Returns: 'U array

The array of transformed elements.

 let inputs = [| "a"; "bbb"; "cc" |]

 inputs |> Array.map (fun x -> x.Length)

val inputs: string array

module Array from Microsoft.FSharp.Collections

val map: mapping: ('T -> 'U) -> array: 'T array -> 'U array

val x: string

property System.String.Length: int with get

Evaluates to [| 1; 3; 2 |]

Builds a new collection whose elements are the results of applying the given function to the corresponding elements of the two collections pairwise. The two input arrays must have the same lengths, otherwise an ArgumentException is raised.

mapping : 'T1 -> 'T2 -> 'U

The function to transform the pairs of the input elements.

array1 : 'T1 array

The first input array.

array2 : 'T2 array

The second input array.

Returns: 'U array

The array of transformed elements.

 let inputs1 = [| "a"; "bad"; "good" |]
 let inputs2 = [| 0; 2; 1 |]

 (inputs1, inputs2) ||> Array.map2 (fun x y -> x[y])

val inputs1: string array

val inputs2: int array

module Array from Microsoft.FSharp.Collections

val map2: mapping: ('T1 -> 'T2 -> 'U) -> array1: 'T1 array -> array2: 'T2 array -> 'U array

val x: string

val y: int

Evaluates to [| 'a'; 'd'; 'o' |]

Builds a new collection whose elements are the results of applying the given function to the corresponding triples from the three collections. The three input arrays must have the same length, otherwise an ArgumentException is raised.

mapping : 'T1 -> 'T2 -> 'T3 -> 'U

The function to transform the pairs of the input elements.

array1 : 'T1 array

The first input array.

array2 : 'T2 array

The second input array.

array3 : 'T3 array

The third input array.

Returns: 'U array

The array of transformed elements.

 let inputs1 = [| "a"; "t"; "ti" |]
 let inputs2 = [| "l"; "h"; "m" |]
 let inputs3 = [| "l"; "e"; "e" |]

 (inputs1, inputs2, inputs3) |||> Array.map3 (fun x y z -> x + y + z)

val inputs1: string array

val inputs2: string array

val inputs3: string array

module Array from Microsoft.FSharp.Collections

val map3: mapping: ('T1 -> 'T2 -> 'T3 -> 'U) -> array1: 'T1 array -> array2: 'T2 array -> array3: 'T3 array -> 'U array

val x: string

val y: string

val z: string

Evaluates to [| "all"; "the"; "time" |]

Combines map and fold. Builds a new array whose elements are the results of applying the given function to each of the elements of the input array. The function is also used to accumulate a final value.

mapping : 'State -> 'T -> 'Result * 'State

The function to transform elements from the input array and accumulate the final value.

state : 'State

The initial state.

array : 'T array

The input array.

Returns: 'Result array * 'State

The array of transformed elements, and the final accumulated value.

Accumulate the charges, and double them as well
 type Charge =
     | In of int
     | Out of int

 let inputs = [| In 1; Out 2; In 3 |]

 let newCharges, balance =
     (0, inputs) ||> Array.mapFold (fun acc charge ->
         match charge with
         | In i -> In (i*2), acc + i
         | Out o -> Out (o*2), acc - o)

Multiple items

val double: value: 'T -> double (requires member op_Explicit)

--------------------

type double = System.Double

--------------------

type double<'Measure> = float<'Measure>

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

module Array from Microsoft.FSharp.Collections

val mapFold<'T,'State,'Result> : mapping: ('State -> 'T -> 'Result * 'State) -> state: 'State -> array: 'T array -> 'Result array * 'State

Evaluates newCharges to [|In 2; Out 4; In 6|] and balance to 2.

Combines map and foldBack. Builds a new array whose elements are the results of applying the given function to each of the elements of the input array. The function is also used to accumulate a final value.

mapping : 'T -> 'State -> 'Result * 'State

The function to transform elements from the input array and accumulate the final value.

array : 'T array

The input array.

state : 'State

The initial state.

Returns: 'Result array * 'State

The array of transformed elements, and the final accumulated value.

Accumulate the charges from back to front, and double them as well

 type Charge =
     | In of int
     | Out of int

 let inputs = [| In 1; Out 2; In 3 |]

 let newCharges, balance =
     (inputs, 0) ||> Array.mapFoldBack (fun charge acc ->
         match charge with
         | In i -> In (i*2), acc + i
         | Out o -> Out (o*2), acc - o)

type Charge = | In of int | Out of int

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

val inputs: Charge array

union case Charge.In: int -> Charge

union case Charge.Out: int -> Charge

val newCharges: Charge array

val balance: int

module Array from Microsoft.FSharp.Collections

val mapFoldBack: mapping: ('T -> 'State -> 'Result * 'State) -> array: 'T array -> state: 'State -> 'Result array * 'State

val charge: Charge

val acc: int

val i: int

val o: int

Evaluates newCharges to [|In 2; Out 4; In 6|] and balance to 2.

Builds a new array whose elements are the results of applying the given function to each of the elements of the array. The integer index passed to the function indicates the index of element being transformed, starting at zero.

mapping : int -> 'T -> 'U

The function to transform elements and their indices.

array : 'T array

The input array.

Returns: 'U array

The array of transformed elements.

 let inputs = [| 10; 10; 10 |]

 inputs |> Array.mapi (fun i x -> i + x)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val mapi: mapping: (int -> 'T -> 'U) -> array: 'T array -> 'U array

val i: int

val x: int

Evaluates to [| 10; 11; 12 |]

Builds a new collection whose elements are the results of applying the given function to the corresponding elements of the two collections pairwise, also passing the index of the elements. The two input arrays must have the same lengths, otherwise an ArgumentException is raised.

mapping : int -> 'T1 -> 'T2 -> 'U

The function to transform pairs of input elements and their indices.

array1 : 'T1 array

The first input array.

array2 : 'T2 array

The second input array.

Returns: 'U array

The array of transformed elements.

 let inputs1 = [| "a"; "bad"; "good" |]
 let inputs2 = [| 0; 2; 1 |]

 (inputs1, inputs2) ||> Array.mapi2 (fun i x y -> i, x[y])

val inputs1: string array

val inputs2: int array

module Array from Microsoft.FSharp.Collections

val mapi2: mapping: (int -> 'T1 -> 'T2 -> 'U) -> array1: 'T1 array -> array2: 'T2 array -> 'U array

val i: int

val x: string

val y: int

Evaluates to [|(0, 'a'); (1, 'd'); (2, 'o')|]

Returns the greatest of all elements of the array, compared via Operators.max on the function result.

array : 'T array

The input array.

Returns: 'T

The maximum element.

 let inputs = [| 10; 12; 11 |]

 inputs |> Array.max

val inputs: int array

module Array from Microsoft.FSharp.Collections

val max: array: 'T array -> 'T (requires comparison)

Evaluates to 12
 let inputs: int array= [| |]

 inputs |> Array.max

val inputs: int array

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val max: array: 'T array -> 'T (requires comparison)

Throws System.ArgumentException.

Returns the greatest of all elements of the array, compared via Operators.max on the function result.

projection : 'T -> 'U

The function to transform the elements into a type supporting comparison.

array : 'T array

The input array.

Returns: 'T

The maximum element.

 let inputs = [| "aaa"; "b"; "cccc" |]

 inputs |> Array.maxBy (fun s -> s.Length)

val inputs: string array

module Array from Microsoft.FSharp.Collections

val maxBy: projection: ('T -> 'U) -> array: 'T array -> 'T (requires comparison)

val s: string

property System.String.Length: int with get

Evaluates to "cccc"
 let inputs: string array= [| |]

 inputs |> Array.maxBy (fun s -> s.Length)

val inputs: string array

Multiple items

val string: value: 'T -> string

--------------------

type string = System.String

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val maxBy: projection: ('T -> 'U) -> array: 'T array -> 'T (requires comparison)

val s: string

property System.String.Length: int with get

Throws System.ArgumentException.

Returns the lowest of all elements of the array, compared via Operators.min.

array : 'T array

The input array.

Returns: 'T

The minimum element.

 let inputs = [| 10; 12; 11 |]

 inputs |> Array.min

val inputs: int array

module Array from Microsoft.FSharp.Collections

val min: array: 'T array -> 'T (requires comparison)

Evaluates to 10
 let inputs: int array= [| |]

 inputs |> Array.min

val inputs: int array

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val min: array: 'T array -> 'T (requires comparison)

Throws System.ArgumentException.

Returns the lowest of all elements of the array, compared via Operators.min on the function result.

projection : 'T -> 'U

The function to transform the elements into a type supporting comparison.

array : 'T array

The input array.

Returns: 'T

The minimum element.

 let inputs = [| "aaa"; "b"; "cccc" |]

 inputs |> Array.minBy (fun s -> s.Length)

val inputs: string array

module Array from Microsoft.FSharp.Collections

val minBy: projection: ('T -> 'U) -> array: 'T array -> 'T (requires comparison)

val s: string

property System.String.Length: int with get

Evaluates to "b"
 let inputs: string array= [| |]

 inputs |> Array.minBy (fun s -> s.Length)

val inputs: string array

Multiple items

val string: value: 'T -> string

--------------------

type string = System.String

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val minBy: projection: ('T -> 'U) -> array: 'T array -> 'T (requires comparison)

val s: string

property System.String.Length: int with get

Throws System.ArgumentException.

Builds an array from the given list.

list : 'T list

The input list.

Returns: 'T array

The array of elements from the list.

 let inputs = [ 1; 2; 5 ]

 inputs |> Array.ofList

val inputs: int list

module Array from Microsoft.FSharp.Collections

val ofList: list: 'T list -> 'T array

Evaluates to [| 1; 2; 5 |].

Builds a new array from the given enumerable object.

source : 'T seq

The input sequence.

Returns: 'T array

The array of elements from the sequence.

 let inputs = seq { 1; 2; 5 }

 inputs |> Array.ofSeq

val inputs: int seq

Multiple items

val seq: sequence: 'T seq -> 'T seq

--------------------

type 'T seq = System.Collections.Generic.IEnumerable<'T>

module Array from Microsoft.FSharp.Collections

val ofSeq: source: 'T seq -> 'T array

Evaluates to [| 1; 2; 5 |].

Returns an array of each element in the input array paired with its predecessor, with the exception of the first element which is only returned as the predecessor of the second element. The predecessor comes first in the returned pairs.

array : 'T array

The input array.

Returns: ('T * 'T) array

The result array.

 let inputs = [| 1; 2; 3; 4 |]

 inputs |> Array.pairwise

val inputs: int array

module Array from Microsoft.FSharp.Collections

val pairwise: array: 'T array -> ('T * 'T) array

Evaluates to [|(1, 2); (2, 3); (3, 4)|].

Splits the collection into two collections, containing the elements for which the given predicate returns "true" and "false" respectively.

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: 'T array * 'T array

A pair of arrays. The first containing the elements the predicate evaluated to true, and the second containing those evaluated to false.

 let inputs = [| 1; 2; 3; 4 |]

 inputs |> Array.partition (fun x -> x % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val partition: predicate: ('T -> bool) -> array: 'T array -> 'T array * 'T array

val x: int

Evaluates to ([|2; 4|], [|1; 3|]).

Returns an array with all elements permuted according to the specified permutation.

indexMap : int -> int

The function that maps input indices to output indices.

array : 'T array

The input array.

Returns: 'T array

The output array.

 let inputs = [| 1; 2; 3; 4 |]

 inputs |> Array.permute (fun x -> (x + 1) % 4)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val permute: indexMap: (int -> int) -> array: 'T array -> 'T array

val x: int

Evaluates to [|4; 1; 2; 3|].

Applies the given function to successive elements, returning the first result where the function returns Some(x) for some x. If the function never returns Some(x) then KeyNotFoundException is raised.

chooser : 'T -> 'U option

The function to generate options from the elements.

array : 'T array

The input array.

Returns: 'U

The first result.

 let input = [| 1; 2; 3 |]

 input |> Array.pick (fun n -> if n % 2 = 0 then Some (string n) else None)

val input: int array

module Array from Microsoft.FSharp.Collections

val pick: chooser: ('T -> 'U option) -> array: 'T array -> 'U

val n: int

union case Option.Some: Value: 'T -> Option<'T>

Multiple items

val string: value: 'T -> string

--------------------

type string = System.String

union case Option.None: Option<'T>

Evaluates to "2".
 let input = [| 1; 2; 3 |]

 input |> Array.pick (fun n -> if n > 3 = 0 then Some (string n) else None)

val input: int array

module Array from Microsoft.FSharp.Collections

val pick: chooser: ('T -> 'U option) -> array: 'T array -> 'U

val n: int

union case Option.Some: Value: 'T -> Option<'T>

Multiple items

val string: value: 'T -> string

--------------------

type string = System.String

union case Option.None: Option<'T>

Throws KeyNotFoundException.

Returns a random element from the given array.

source : 'T array

The input array.

Returns: 'T

A randomly selected element from the input array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomChoice

val inputs: int array

module Array from Microsoft.FSharp.Collections

Can evaluate to 3.

Returns a random element from the given array using the specified randomizer function.

randomizer : unit -> float

The randomizer function, must return a float number from [0.0..1.0) range.

source : 'T array

The input array.

Returns: 'T

A randomly selected element from the input array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomChoiceBy Random.Shared.NextDouble

val inputs: int array

module Array from Microsoft.FSharp.Collections

Can evaluate to 3.

Returns a random element from the given array with the specified Random instance.

random : Random

The Random instance.

source : 'T array

The input array.

Returns: 'T

A randomly selected element from the input array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomChoiceWith Random.Shared

val inputs: int array

module Array from Microsoft.FSharp.Collections

Can evaluate to 3.

Returns an array of random elements from the given array, each element can be selected multiple times.

count : int

The number of elements to return.

source : 'T array

The input array.

Returns: 'T array

An array of randomly selected elements from the input array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomChoices 3

val inputs: int array

module Array from Microsoft.FSharp.Collections

Can evaluate to [| 3; 1; 3 |].

Returns an array of random elements from the given array using the specified randomizer function, each element can be selected multiple times.

randomizer : unit -> float

The randomizer function, must return a float number from [0.0..1.0) range.

count : int

The number of elements to return.

source : 'T array

The input array.

Returns: 'T array

An array of randomly selected elements from the input array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomChoicesBy Random.Shared.NextDouble 3

val inputs: int array

module Array from Microsoft.FSharp.Collections

Can evaluate to [| 3; 1; 3 |].

Returns an array of random elements from the given array with the specified Random instance, each element can be selected multiple times.

random : Random

The Random instance.

count : int

The number of elements to return.

source : 'T array

The input array.

Returns: 'T array

An array of randomly selected elements from the input array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomChoicesWith Random.Shared 3

val inputs: int array

module Array from Microsoft.FSharp.Collections

Can evaluate to [| 3; 1; 3 |].

Returns a random sample of elements from the given array, each element can be selected only once.

count : int

The number of elements to return.

source : 'T array

The input array.

Returns: 'T array

An array of randomly selected elements from the input array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomSample 3

val inputs: int array

module Array from Microsoft.FSharp.Collections

Can evaluate to [| 3; 1; 2 |].

Returns a random sample of elements from the given array using the specified randomizer function, each element can be selected only once.

randomizer : unit -> float

The randomizer function, must return a float number from [0.0..1.0) range.

count : int

The number of elements to return.

source : 'T array

The input array.

Returns: 'T array

An array of randomly selected elements from the input array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomSampleBy Random.Shared.NextDouble 3

val inputs: int array

module Array from Microsoft.FSharp.Collections

Can evaluate to [| 3; 1; 2 |].

Returns a random sample of elements from the given array with the specified Random instance, each element can be selected only once.

random : Random

The Random instance.

count : int

The number of elements to return.

source : 'T array

The input array.

Returns: 'T array

An array of randomly selected elements from the input array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomSampleWith Random.Shared 3

val inputs: int array

module Array from Microsoft.FSharp.Collections

Can evaluate to [| 3; 1; 2 |].

Return a new array shuffled in a random order.

source : 'T array

The input array.

Returns: 'T array

The result array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomShuffle

val inputs: int array

module Array from Microsoft.FSharp.Collections

Can evaluate to [| 0; 2; 4; 3; 1 |].

Return a new array shuffled in a random order using the specified randomizer function.

randomizer : unit -> float

The randomizer function, must return a float number from [0.0..1.0) range.

source : 'T array

The input array.

Returns: 'T array

The result array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomShuffleBy Random.Shared.NextDouble

val inputs: int array

module Array from Microsoft.FSharp.Collections

Can evaluate to [| 0; 2; 4; 3; 1 |].

Sorts input array in a random order by mutating the array in-place.

source : 'T array

The input array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomShuffleInPlace

val inputs: int array

module Array from Microsoft.FSharp.Collections

After evaluation array can contain [| 0; 2; 4; 3; 1 |].

Sorts input array in a random order using the specified randomizer function by mutating the array in-place.

randomizer : unit -> float

The randomizer function, must return a float number from [0.0..1.0) range.

source : 'T array

The input array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomShuffleInPlaceBy Random.Shared.NextDouble

val inputs: int array

module Array from Microsoft.FSharp.Collections

After evaluation array can contain [| 0; 2; 4; 3; 1 |].

Sorts input array in a random order with the specified Random instance by mutating the array in-place.

random : Random

The Random instance.

source : 'T array

The input array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomShuffleInPlaceWith Random.Shared

val inputs: int array

module Array from Microsoft.FSharp.Collections

After evaluation array can contain [| 0; 2; 4; 3; 1 |].

Return a new array shuffled in a random order with the specified Random instance.

random : Random

The Random instance.

source : 'T array

The input array.

Returns: 'T array

The result array.

 let inputs = [| 0; 1; 2; 3; 4 |]

 inputs |> Array.randomShuffleWith Random.Shared

val inputs: int array

module Array from Microsoft.FSharp.Collections

Can evaluate to [| 0; 2; 4; 3; 1 |].

Applies a function to each element of the array, threading an accumulator argument through the computation. If the input function is f and the elements are i0...iN then computes f (... (f i0 i1)...) iN. Raises ArgumentException if the array has size zero.

reduction : 'T -> 'T -> 'T

The function to reduce a pair of elements to a single element.

array : 'T array

The input array.

Returns: 'T

The final result of the reductions.

 let inputs = [| 1; 3; 4; 2 |]

 inputs |> Array.reduce (fun a b -> a * 10 + b)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val reduce: reduction: ('T -> 'T -> 'T) -> array: 'T array -> 'T

val a: int

val b: int

Evaluates to 1342, by computing ((1 * 10 + 3) * 10 + 4) * 10 + 2

Applies a function to each element of the array, starting from the end, threading an accumulator argument through the computation. If the input function is f and the elements are i0...iN then computes f i0 (...(f iN-1 iN)).

reduction : 'T -> 'T -> 'T

A function that takes in the next-to-last element of the list and the current accumulated result to produce the next accumulated result.

array : 'T array

The input array.

Returns: 'T

The final result of the reductions.

 let inputs = [| 1; 3; 4; 2 |]

 inputs |> Array.reduceBack (fun a b -> a + b * 10)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val reduceBack: reduction: ('T -> 'T -> 'T) -> array: 'T array -> 'T

val a: int

val b: int

Evaluates to 2431, by computing 1 + (3 + (4 + 2 * 10) * 10) * 10

Return a new array with the item at a given index removed.

index : int

The index of the item to be removed.

source : 'T array

The input array.

Returns: 'T array

The result array.

 let inputs = [| 0; 1; 2 |]

 inputs |> Array.removeAt 1

val inputs: int array

module Array from Microsoft.FSharp.Collections

val removeAt: index: int -> source: 'T array -> 'T array

Evaluates to [| 0; 2 |].

Return a new array with the number of items starting at a given index removed.

index : int

The index of the item to be removed.

count : int

The number of items to remove.

source : 'T array

The input array.

Returns: 'T array

The result array.

 let inputs = [| 0; 1; 2; 3 |]

 inputs |> Array.removeManyAt 1 2

val inputs: int array

module Array from Microsoft.FSharp.Collections

val removeManyAt: index: int -> count: int -> source: 'T array -> 'T array

Evaluates to [| 0; 3 |].

Creates an array by replicating the given initial value.

count : int

The number of elements to replicate.

initial : 'T

The value to replicate

Returns: 'T array

The generated array.

 Array.replicate 3 "a"

module Array from Microsoft.FSharp.Collections

val replicate: count: int -> initial: 'T -> 'T array

Evaluates to [| "a"; "a"; "a" |].

Returns a new array with the elements in reverse order.

array : 'T array

The input array.

Returns: 'T array

The reversed array.

 Array.rev [| 0; 1; 2 |]

module Array from Microsoft.FSharp.Collections

val rev: array: 'T array -> 'T array

Evaluates to [| 2; 1; 0 |].

Like fold, but return the intermediary and final results.

folder : 'State -> 'T -> 'State

The function to update the state given the input elements.

state : 'State

The initial state.

array : 'T array

The input array.

Returns: 'State array

The array of state values.

Apply a list charges and collect the running balances as each is applied:

 type Charge =
     | In of int
     | Out of int

 let inputs = [| In 1; Out 2; In 3 |]

 (0, inputs) ||> Array.scan (fun acc charge ->
     match charge with
     | In i -> acc + i
     | Out o -> acc - o)

type Charge = | In of int | Out of int

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

val inputs: Charge array

union case Charge.In: int -> Charge

union case Charge.Out: int -> Charge

module Array from Microsoft.FSharp.Collections

val scan<'T,'State> : folder: ('State -> 'T -> 'State) -> state: 'State -> array: 'T array -> 'State array

val acc: int

val charge: Charge

val i: int

val o: int

Evaluates to [|0; 1; -1; 2|]. Note 0 is the initial state, 1 the next state, -1 the next state, and 2 the final state.

Like foldBack, but return both the intermediary and final results.

folder : 'T -> 'State -> 'State

The function to update the state given the input elements.

array : 'T array

The input array.

state : 'State

The initial state.

Returns: 'State array

The array of state values.

Apply a list charges from back to front, and collect the running balances as each is applied:

 type Charge =
     | In of int
     | Out of int

 let inputs = [| In 1; Out 2; In 3 |]

 (inputs, 0) ||> Array.scanBack (fun charge acc ->
     match charge with
     | In i -> acc + i
     | Out o -> acc - o)

type Charge = | In of int | Out of int

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

val inputs: Charge array

union case Charge.In: int -> Charge

union case Charge.Out: int -> Charge

module Array from Microsoft.FSharp.Collections

val scanBack: folder: ('T -> 'State -> 'State) -> array: 'T array -> state: 'State -> 'State array

val charge: Charge

val acc: int

val i: int

val o: int

Evaluates to [|2; 1; 3; 0|] by processing each input from back to front. Note 0 is the initial state, 3 the next state, 1 the next state, and 2 the final state.

Sets an element of an array.

array : 'T array

The input array.

index : int

The input index.

value : 'T

The input value.

 let inputs = [| "a"; "b"; "c" |]

 Array.set inputs 1 "B"

val inputs: string array

module Array from Microsoft.FSharp.Collections

val set: array: 'T array -> index: int -> value: 'T -> unit

After evaluation inputs contains [| "a"; "B"; "c" |]
 let inputs = [| "a"; "b"; "c" |]

 Array.set inputs 4 "d"

val inputs: string array

module Array from Microsoft.FSharp.Collections

val set: array: 'T array -> index: int -> value: 'T -> unit

Throws IndexOutOfRangeException

Returns an array that contains one item only.

value : 'T

The input item.

Returns: 'T array

The result array of one item.

 Array.singleton 7

module Array from Microsoft.FSharp.Collections

val singleton: value: 'T -> 'T array

Evaluates to [| 7 |].

Builds a new array that contains the elements of the given array, excluding the first N elements.

count : int

The number of elements to skip. If negative the full array will be returned as a copy.

array : 'T array

The input array.

Returns: 'T array

A copy of the input array, after removing the first N elements.

 let inputs = [| "a"; "b"; "c"; "d" |]

 inputs |> Array.skip 2

val inputs: string array

module Array from Microsoft.FSharp.Collections

val skip: count: int -> array: 'T array -> 'T array

Evaluates to [| "c"; "d" |]
 let inputs = [| "a"; "b"; "c"; "d" |]

 inputs |> Array.skip 5

val inputs: string array

module Array from Microsoft.FSharp.Collections

val skip: count: int -> array: 'T array -> 'T array

Throws ArgumentException.
 let inputs = [| "a"; "b"; "c"; "d" |]

 inputs |> Array.skip -1

val inputs: string array

module Array from Microsoft.FSharp.Collections

val skip: count: int -> array: 'T array -> 'T array

Evaluates to [| "a"; "b"; "c"; "d" |].

Bypasses elements in an array while the given predicate returns True, and then returns the remaining elements in a new array.

predicate : 'T -> bool

A function that evaluates an element of the array to a boolean value.

array : 'T array

The input array.

Returns: 'T array

The created sub array.

 let inputs = [| "a"; "bbb"; "cc"; "d" |]

 inputs |> Array.skipWhile (fun x -> x.Length < 3)

val inputs: string array

module Array from Microsoft.FSharp.Collections

val skipWhile: predicate: ('T -> bool) -> array: 'T array -> 'T array

val x: string

property System.String.Length: int with get

Evaluates to [|"bbb"; "cc"; "d"|]

Sorts the elements of an array, returning a new array. Elements are compared using Operators.compare.

array : 'T array

The input array.

Returns: 'T array

The sorted array.

 let input = [| 8; 4; 3; 1; 6; 1 |]

 Array.sort input

val input: int array

module Array from Microsoft.FSharp.Collections

val sort: array: 'T array -> 'T array (requires comparison)

Evaluates to [| 1; 1; 3; 4; 6; 8 |].

Sorts the elements of an array, using the given projection for the keys and returning a new array. Elements are compared using Operators.compare.

projection : 'T -> 'Key

The function to transform array elements into the type that is compared.

array : 'T array

The input array.

Returns: 'T array

The sorted array.

 let input = [| "a"; "bbb"; "cccc"; "dd" |]

 input |> Array.sortBy (fun s -> s.Length)

val input: string array

module Array from Microsoft.FSharp.Collections

val sortBy: projection: ('T -> 'Key) -> array: 'T array -> 'T array (requires comparison)

val s: string

property System.String.Length: int with get

Evaluates to [|"a"; "dd"; "bbb"; "cccc"|].

Sorts the elements of an array, in descending order, using the given projection for the keys and returning a new array. Elements are compared using Operators.compare.

projection : 'T -> 'Key

The function to transform array elements into the type that is compared.

array : 'T array

The input array.

Returns: 'T array

The sorted array.

 let input = [| "a"; "bbb"; "cccc"; "dd" |]

 input |> Array.sortByDescending (fun s -> s.Length)

val input: string array

module Array from Microsoft.FSharp.Collections

val sortByDescending: projection: ('T -> 'Key) -> array: 'T array -> 'T array (requires comparison)

val s: string

property System.String.Length: int with get

Evaluates to [|"cccc"; "bbb"; "dd"; "a"|].

Sorts the elements of an array, in descending order, returning a new array. Elements are compared using Operators.compare.

array : 'T array

The input array.

Returns: 'T array

The sorted array.

 let input = [| 8; 4; 3; 1; 6; 1 |]

 input |> Array.sortDescending

val input: int array

module Array from Microsoft.FSharp.Collections

val sortDescending: array: 'T array -> 'T array (requires comparison)

Evaluates to [| 8; 6; 4; 3; 1; 1 |].

Sorts the elements of an array by mutating the array in-place, using the given comparison function. Elements are compared using Operators.compare.

array : 'T array

The input array.

 let array = [| 8; 4; 3; 1; 6; 1 |]

 Array.sortInPlace array

Multiple items

val array: int array

--------------------

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val sortInPlace: array: 'T array -> unit (requires comparison)

After evaluation array contains [| 1; 1; 3; 4; 6; 8 |].

Sorts the elements of an array by mutating the array in-place, using the given projection for the keys. Elements are compared using Operators.compare.

projection : 'T -> 'Key

The function to transform array elements into the type that is compared.

array : 'T array

The input array.

 let array = [| "a"; "bbb"; "cccc"; "dd" |]

 array |> Array.sortInPlaceBy (fun s -> s.Length)

Multiple items

val array: string array

--------------------

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val sortInPlaceBy: projection: ('T -> 'Key) -> array: 'T array -> unit (requires comparison)

val s: string

property System.String.Length: int with get

After evaluation array contains [|"a"; "dd"; "bbb"; "cccc"|].

Sorts the elements of an array by mutating the array in-place, using the given comparison function as the order.

comparer : 'T -> 'T -> int

The function to compare pairs of array elements.

array : 'T array

The input array.

The following sorts entries using a comparison function that compares string lengths then index numbers:

 let compareEntries (n1: int, s1: string) (n2: int, s2: string) =
     let c = compare s1.Length s2.Length
     if c <> 0 then c else
     compare n1 n2

 let array = [| (0,"aa"); (1,"bbb"); (2,"cc"); (3,"dd") |]

 array |> Array.sortInPlaceWith compareEntries

val compareEntries: n1: int * s1: string -> n2: int * s2: string -> int

val n1: int

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

val s1: string

Multiple items

val string: value: 'T -> string

--------------------

type string = System.String

val n2: int

val s2: string

val c: int

val compare: e1: 'T -> e2: 'T -> int (requires comparison)

property System.String.Length: int with get

Multiple items

val array: (int * string) array

--------------------

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val sortInPlaceWith: comparer: ('T -> 'T -> int) -> array: 'T array -> unit

After evaluation array contains [|(0, "aa"); (2, "cc"); (3, "dd"); (1, "bbb")|].

Sorts the elements of an array, using the given comparison function as the order, returning a new array.

comparer : 'T -> 'T -> int

The function to compare pairs of array elements.

array : 'T array

The input array.

Returns: 'T array

The sorted array.

Sort an array of pairs using a comparison function that compares string lengths then index numbers:

 let compareEntries (n1: int, s1: string) (n2: int, s2: string) =
     let c = compare s1.Length s2.Length
     if c <> 0 then c else
     compare n1 n2

 let input = [| (0,"aa"); (1,"bbb"); (2,"cc"); (3,"dd") |]

 input |> Array.sortWith compareEntries

val compareEntries: n1: int * s1: string -> n2: int * s2: string -> int

val n1: int

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

val s1: string

Multiple items

val string: value: 'T -> string

--------------------

type string = System.String

val n2: int

val s2: string

val c: int

val compare: e1: 'T -> e2: 'T -> int (requires comparison)

property System.String.Length: int with get

val input: (int * string) array

module Array from Microsoft.FSharp.Collections

val sortWith: comparer: ('T -> 'T -> int) -> array: 'T array -> 'T array

Evaluates to [|(0, "aa"); (2, "cc"); (3, "dd"); (1, "bbb")|].

Splits an array into two arrays, at the given index.

index : int

The index at which the array is split.

array : 'T array

The input array.

Returns: 'T array * 'T array

The two split arrays.

 let input = [| 8; 4; 3; 1; 6; 1 |]

 let front, back = input |> Array.splitAt 3

val input: int array

val front: int array

val back: int array

module Array from Microsoft.FSharp.Collections

val splitAt: index: int -> array: 'T array -> 'T array * 'T array

Evaluates front to [|8; 4; 3|] and back to [|1; 6; 1|].

Splits the input array into at most count chunks.

count : int

The maximum number of chunks.

array : 'T array

The input array.

Returns: 'T array array

The array split into chunks.

 let inputs = [| 1; 2; 3; 4; 5 |]

 inputs |> Array.splitInto 3

val inputs: int array

module Array from Microsoft.FSharp.Collections

val splitInto: count: int -> array: 'T array -> 'T array array

Evaluates to seq [| [|1; 2|]; [|3; 4|]; [|5|] |]
 let inputs = [| 1; 2; 3; 4; 5 |]

 inputs |> Array.splitInto -1

val inputs: int array

module Array from Microsoft.FSharp.Collections

val splitInto: count: int -> array: 'T array -> 'T array array

Throws ArgumentException

Builds a new array that contains the given subrange specified by starting index and length.

 let input = [| 0; 1; 2; 3; 4; 5 |]

 input.[2..4]

val input: int array

array : 'T array

The input array.

startIndex : int

The index of the first element of the sub array.

count : int

The length of the sub array.

Returns: 'T array

The created sub array.

 let input = [| 0; 1; 2; 3; 4; 5 |]

 Array.sub input 2 3

val input: int array

module Array from Microsoft.FSharp.Collections

val sub: array: 'T array -> startIndex: int -> count: int -> 'T array

Evaluates to [| 2; 3; 4 |].

Returns the sum of the elements in the array.

array : ^T array

The input array.

Returns: ^T

The resulting sum.

 let input = [| 1; 5; 3; 2 |]

 input |> Array.sum

val input: int array

module Array from Microsoft.FSharp.Collections

val sum: array: 'T array -> 'T (requires member (+) and member Zero)

Evaluates to 11.

Returns the sum of the results generated by applying the function to each element of the array.

projection : 'T -> ^U

The function to transform the array elements into the type to be summed.

array : 'T array

The input array.

Returns: ^U

The resulting sum.

 let input = [| "aa"; "bbb"; "cc" |]

 input |> Array.sumBy (fun s -> s.Length)

val input: string array

module Array from Microsoft.FSharp.Collections

val sumBy: projection: ('T -> 'U) -> array: 'T array -> 'U (requires member (+) and member Zero)

val s: string

property System.String.Length: int with get

Evaluates to 7.

Returns a new array containing the elements of the original except the first element.

array : 'T array

The input array.

Returns: 'T array

A new array containing the elements of the original except the first element.

 let inputs = [| "a"; "bb"; "ccc" |]

 inputs |> Array.tail

val inputs: string array

module Array from Microsoft.FSharp.Collections

val tail: array: 'T array -> 'T array

Evaluates to [| "bb"; "ccc" |]

Returns the first N elements of the array.

count : int

The number of items to take.

array : 'T array

The input array.

Returns: 'T array

The result array.

 let inputs = [| "a"; "b"; "c"; "d" |]

 inputs |> Array.take 2

val inputs: string array

module Array from Microsoft.FSharp.Collections

val take: count: int -> array: 'T array -> 'T array

Evaluates to [| "a"; "b" |]
 let inputs = [| "a"; "b"; "c"; "d" |]

 inputs |> Array.take 6

val inputs: string array

module Array from Microsoft.FSharp.Collections

val take: count: int -> array: 'T array -> 'T array

Throws InvalidOperationException.
 let inputs = [| "a"; "b"; "c"; "d" |]

 inputs |> Array.take 0

val inputs: string array

module Array from Microsoft.FSharp.Collections

val take: count: int -> array: 'T array -> 'T array

Evaluates to [| |].

Returns an array that contains all elements of the original array while the given predicate returns True, and then returns no further elements.

predicate : 'T -> bool

A function that evaluates to false when no more items should be returned.

array : 'T array

The input array.

Returns: 'T array

The result array.

 let inputs = [| "a"; "bb"; "ccc"; "d" |]

 inputs |> Array.takeWhile (fun x -> x.Length < 3)

val inputs: string array

module Array from Microsoft.FSharp.Collections

val takeWhile: predicate: ('T -> bool) -> array: 'T array -> 'T array

val x: string

property System.String.Length: int with get

Evaluates to [| "a"; "bb" |]

Builds a list from the given array.

array : 'T array

The input array.

Returns: 'T list

The list of array elements.

 let inputs = [| 1; 2; 5 |]

 inputs |> Array.toList

val inputs: int array

module Array from Microsoft.FSharp.Collections

val toList: array: 'T array -> 'T list

Evaluates to [ 1; 2; 5 ].

Views the given array as a sequence.

array : 'T array

The input array.

Returns: 'T seq

The sequence of array elements.

 let inputs = [| 1; 2; 5 |]

 inputs |> Array.toSeq

val inputs: int array

module Array from Microsoft.FSharp.Collections

val toSeq: array: 'T array -> 'T seq

Evaluates to seq { 1; 2; 5 }.

Returns the transpose of the given sequence of arrays.

arrays : 'T array seq

The input sequence of arrays.

Returns: 'T array array

The transposed array.

 let inputs =
     [| [| 10; 20; 30 |]
        [| 11; 21; 31 |] |]

 inputs |> Array.transpose

val inputs: int array array

module Array from Microsoft.FSharp.Collections

val transpose: arrays: 'T array seq -> 'T array array

Evaluates to [|[|10; 11|]; [|20; 21|]; [|30; 31|]|].

Returns at most N elements in a new array.

count : int

The maximum number of items to return.

array : 'T array

The input array.

Returns: 'T array

The result array.

 let inputs = [| "a"; "b"; "c"; "d" |]

 inputs |> Array.truncate 2

val inputs: string array

module Array from Microsoft.FSharp.Collections

val truncate: count: int -> array: 'T array -> 'T array

Evaluates to [| "a"; "b" |]
 let inputs = [| "a"; "b"; "c"; "d" |]

 inputs |> Array.truncate 6

val inputs: string array

module Array from Microsoft.FSharp.Collections

val truncate: count: int -> array: 'T array -> 'T array

Evaluates to [| "a"; "b"; "c"; "d" |]
 let inputs = [| "a"; "b"; "c"; "d" |]

 inputs |> Array.truncate 0

val inputs: string array

module Array from Microsoft.FSharp.Collections

val truncate: count: int -> array: 'T array -> 'T array

Evaluates to [| |].

Returns the only element of the array or None if array is empty or contains more than one element.

array : 'T array

The input array.

Returns: 'T option

The only element of the array or None.

 let inputs = [| "banana" |]

 inputs |> Array.tryExactlyOne

val inputs: string array

module Array from Microsoft.FSharp.Collections

val tryExactlyOne: array: 'T array -> 'T option

Evaluates to Some banana
 let inputs = [| "pear"; "banana" |]

 inputs |> Array.tryExactlyOne

val inputs: string array

module Array from Microsoft.FSharp.Collections

val tryExactlyOne: array: 'T array -> 'T option

Evaluates to None
 let inputs: int array = [| |]

 inputs |> Array.tryExactlyOne

val inputs: int array

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val tryExactlyOne: array: 'T array -> 'T option

Evaluates to None

Returns the first element for which the given function returns True. Return None if no such element exists.

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: 'T option

The first element that satisfies the predicate, or None.

Try to find the first even number:

 let inputs = [| 1; 2; 3 |]

 inputs |> Array.tryFind (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val tryFind: predicate: ('T -> bool) -> array: 'T array -> 'T option

val elm: int

Evaluates to Some 2

Try to find the first even number:

 let inputs = [| 1; 5; 3 |]

 inputs |> Array.tryFind (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val tryFind: predicate: ('T -> bool) -> array: 'T array -> 'T option

val elm: int

Evaluates to None

Returns the last element for which the given function returns True. Return None if no such element exists.

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: 'T option

The last element that satisfies the predicate, or None.

Try to find the first even number from the back:

 let inputs = [| 1; 2; 3; 4; 5 |]

 inputs |> Array.tryFindBack (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val tryFindBack: predicate: ('T -> bool) -> array: 'T array -> 'T option

val elm: int

Evaluates to Some 4

Try to find the first even number from the back:

 let inputs = [| 1; 5; 3 |]

 inputs |> Array.tryFindBack (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val tryFindBack: predicate: ('T -> bool) -> array: 'T array -> 'T option

val elm: int

Evaluates to None

Returns the index of the first element in the array that satisfies the given predicate.

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: int option

The index of the first element that satisfies the predicate, or None.

Try to find the index of the first even number:

 let inputs = [| 1; 2; 3; 4; 5 |]

 inputs |> Array.tryFindIndex (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val tryFindIndex: predicate: ('T -> bool) -> array: 'T array -> int option

val elm: int

Evaluates to Some 1

Try to find the index of the first even number:

 let inputs = [| 1; 3; 5; 7 |]

 inputs |> Array.tryFindIndex (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val tryFindIndex: predicate: ('T -> bool) -> array: 'T array -> int option

val elm: int

Evaluates to None

Returns the index of the last element in the array that satisfies the given predicate.

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: int option

The index of the last element that satisfies the predicate, or None.

Try to find the index of the first even number from the back:

 let inputs = [| 1; 2; 3; 4; 5 |]

 inputs |> Array.tryFindIndexBack (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val tryFindIndexBack: predicate: ('T -> bool) -> array: 'T array -> int option

val elm: int

Evaluates to Some 3

Try to find the index of the first even number from the back:

 let inputs = [| 1; 3; 5; 7 |]

 inputs |> Array.tryFindIndexBack (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val tryFindIndexBack: predicate: ('T -> bool) -> array: 'T array -> int option

val elm: int

Evaluates to None

Returns the first element of the array, or None if the array is empty.

array : 'T array

The input array.

Returns: 'T option

The first element of the array or None.

 let inputs = [| "banana"; "pear" |]

 inputs |> Array.tryHead

val inputs: string array

module Array from Microsoft.FSharp.Collections

val tryHead: array: 'T array -> 'T option

Evaluates to Some "banana"
 let inputs : int array = [| |]

 inputs |> Array.tryHead

val inputs: int array

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val tryHead: array: 'T array -> 'T option

Evaluates to None

Tries to find the nth element in the array. Returns None if index is negative or the input array does not contain enough elements.

index : int

The index of element to retrieve.

array : 'T array

The input array.

Returns: 'T option

The nth element of the array or None.

 let inputs = [| "a"; "b"; "c" |]

 inputs |> Array.tryItem 1

val inputs: string array

module Array from Microsoft.FSharp.Collections

val tryItem: index: int -> array: 'T array -> 'T option

Evaluates to Some "b".
 let inputs = [| "a"; "b"; "c" |]

 inputs |> Array.tryItem 4

val inputs: string array

module Array from Microsoft.FSharp.Collections

val tryItem: index: int -> array: 'T array -> 'T option

Evaluates to None.

Returns the last element of the array. Return None if no such element exists.

array : 'T array

The input array.

Returns: 'T option

The last element of the array or None.

 [| "pear"; "banana" |] |> Array.tryLast

module Array from Microsoft.FSharp.Collections

val tryLast: array: 'T array -> 'T option

Evaluates to Some "banana"
 [| |] |> Array.tryLast

module Array from Microsoft.FSharp.Collections

val tryLast: array: 'T array -> 'T option

Evaluates to None

Applies the given function to successive elements, returning the first result where the function returns Some(x) for some x. If the function never returns Some(x) then None is returned.

chooser : 'T -> 'U option

The function to transform the array elements into options.

array : 'T array

The input array.

Returns: 'U option

The first transformed element that is Some(x).

 let input = [| 1; 2; 3 |]

 input |> Array.tryPick (fun n -> if n % 2 = 0 then Some (string n) else None)

val input: int array

module Array from Microsoft.FSharp.Collections

val tryPick: chooser: ('T -> 'U option) -> array: 'T array -> 'U option

val n: int

union case Option.Some: Value: 'T -> Option<'T>

Multiple items

val string: value: 'T -> string

--------------------

type string = System.String

union case Option.None: Option<'T>

Evaluates to Some "2".
 let input = [| 1; 2; 3 |]

 input |> Array.tryPick (fun n -> if n > 3 = 0 then Some (string n) else None)

val input: int array

module Array from Microsoft.FSharp.Collections

val tryPick: chooser: ('T -> 'U option) -> array: 'T array -> 'U option

val n: int

union case Option.Some: Value: 'T -> Option<'T>

Multiple items

val string: value: 'T -> string

--------------------

type string = System.String

union case Option.None: Option<'T>

Evaluates to None.

Returns an array that contains the elements generated by the given computation. The generator is repeatedly called to build the list until it returns `None`. The given initial state argument is passed to the element generator.

generator : 'State -> ('T * 'State) option

A function that takes in the current state and returns an option tuple of the next element of the array and the next state value.

state : 'State

The initial state value.

Returns: 'T array

The result array.

 1 |> Array.unfold (fun state -> if state > 100 then None else Some (state, state * 2))

module Array from Microsoft.FSharp.Collections

val unfold<'T,'State> : generator: ('State -> ('T * 'State) option) -> state: 'State -> 'T array

val state: int

union case Option.None: Option<'T>

union case Option.Some: Value: 'T -> Option<'T>

Evaluates to [| 1; 2; 4; 8; 16; 32; 64 |]

Splits an array of pairs into two arrays.

array : ('T1 * 'T2) array

The input array.

Returns: 'T1 array * 'T2 array

The two arrays.

 let inputs = [| (1, "one"); (2, "two") |]

 let numbers, names = inputs |> Array.unzip

val inputs: (int * string) array

val numbers: int array

val names: string array

module Array from Microsoft.FSharp.Collections

val unzip: array: ('T1 * 'T2) array -> 'T1 array * 'T2 array

Evaluates numbers to [|1; 2|] and names to [|"one"; "two"|].

Splits an array of triples into three arrays.

array : ('T1 * 'T2 * 'T3) array

The input array.

Returns: 'T1 array * 'T2 array * 'T3 array

The tuple of three arrays.

 let inputs = [| (1, "one", "I"); (2, "two", "II") |]

 let numbers, names, roman = inputs |> Array.unzip3

val inputs: (int * string * string) array

val numbers: int array

val names: string array

val roman: string array

module Array from Microsoft.FSharp.Collections

val unzip3: array: ('T1 * 'T2 * 'T3) array -> 'T1 array * 'T2 array * 'T3 array

Evaluates numbers to [|1; 2|], names to [|"one"; "two"|] and roman to [|"I"; "II"|].

Return a new array with the item at a given index set to the new value.

index : int

The index of the item to be replaced.

value : 'T

The new value.

source : 'T array

The input array.

Returns: 'T array

The result array.

 let inputs = [| 0; 1; 2 |]

 inputs |> Array.updateAt 1 9

val inputs: int array

module Array from Microsoft.FSharp.Collections

val updateAt: index: int -> value: 'T -> source: 'T array -> 'T array

Evaluates to [| 0; 9; 2 |].

Returns a new array containing only the elements of the array for which the given predicate returns "true".

predicate : 'T -> bool

The function to test the input elements.

array : 'T array

The input array.

Returns: 'T array

An array containing the elements for which the given predicate returns true.

Select only the even numbers:

 let inputs = [| 1; 2; 3; 4 |]

 inputs |> Array.where (fun elm -> elm % 2 = 0)

val inputs: int array

module Array from Microsoft.FSharp.Collections

val where: predicate: ('T -> bool) -> array: 'T array -> 'T array

val elm: int

Evaluates to [| 2; 4 |]

Returns an array of sliding windows containing elements drawn from the input array. Each window is returned as a fresh array.

windowSize : int

The number of elements in each window.

array : 'T array

The input array.

Returns: 'T array array

The result array.

 let inputs = [| 1; 2; 3; 4; 5 |]

 inputs |> Array.windowed 3

val inputs: int array

module Array from Microsoft.FSharp.Collections

val windowed: windowSize: int -> array: 'T array -> 'T array array

Evaluates to [|[|1; 2; 3|]; [|2; 3; 4|]; [|3; 4; 5|]|]

Creates an array where the entries are initially the default value Unchecked.defaultof<'T>.

count : int

The length of the array to create.

Returns: 'T array

The created array.

 let arr : int array = Array.zeroCreate 4

val arr: int array

Multiple items

val int: value: 'T -> int (requires member op_Explicit)

--------------------

type int = int32

--------------------

type int<'Measure> = int

type 'T array = 'T array

module Array from Microsoft.FSharp.Collections

val zeroCreate: count: int -> 'T array

Evaluates to [| 0; 0; 0; 0 |]

Combines the two arrays into an array of pairs. The two arrays must have equal lengths, otherwise an ArgumentException is raised.

array1 : 'T1 array

The first input array.

array2 : 'T2 array

The second input array.

Returns: ('T1 * 'T2) array

The array of tupled elements.

 let numbers = [|1; 2|]
 let names = [|"one"; "two"|]

 Array.zip numbers names

val numbers: int array

val names: string array

module Array from Microsoft.FSharp.Collections

val zip: array1: 'T1 array -> array2: 'T2 array -> ('T1 * 'T2) array

Evaluates to [| (1, "one"); (2, "two") |].

Combines three arrays into an array of pairs. The three arrays must have equal lengths, otherwise an ArgumentException is raised.

array1 : 'T1 array

The first input array.

array2 : 'T2 array

The second input array.

array3 : 'T3 array

The third input array.

Returns: ('T1 * 'T2 * 'T3) array

The array of tupled elements.

 let numbers = [| 1; 2 |]
 let names = [| "one"; "two" |]
 let roman = [| "I"; "II" |]

 Array.zip3 numbers names roman

val numbers: int array

val names: string array

val roman: string array

module Array from Microsoft.FSharp.Collections

val zip3: array1: 'T1 array -> array2: 'T2 array -> array3: 'T3 array -> ('T1 * 'T2 * 'T3) array

Evaluates to [|(1, "one", "I"); (2, "two", "II")|].

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4