Header menu logo FSharp.Core.Fluent

Usage examples

Seq functions

The fluent-style members for all Seq.* operations are shown below. Some additional fluent functions are available for Array, these are not shown here.

open FSharp.Core.Fluent

module SeqExamples =
    let seq1 = seq { 1 .. 10 }
    let seq2 = seq { 11 .. 20 }

    seq1.append(seq2)
    seq1.averageBy(fun x -> float x)
    seq1.cache()
    seq1.choose(fun x -> if x % 2 = 0 then Some x else None)
    seq1.collect (fun n -> [ n; n + 1 ])
    seq1.countBy(fun x -> x)
    seq1.distinct()
    seq1.distinctBy(fun x -> x)
    seq1.exactlyOne()
    seq1.exists(fun x -> x > 1)
    seq1.filter(fun x -> x > 1)
    seq1.find(fun x -> x > 1)
    seq1.findIndex(fun x -> x > 1)
    seq1.tryFind(fun x -> x > 1)
    seq1.tryFindIndex(fun x -> x > 1)
    seq1.tryPick(fun x -> Some x)
    seq1.fold(3, fun z x -> x + z)
    seq1.forall(fun x -> x > 1)
    seq1.groupBy(fun x -> x)
    seq1.head()
    seq1.iter(fun x -> printfn "%d" x)
    seq1.iteri(fun i x ->  printfn "%d" x)
    seq1.last()
    seq1.length
    seq1.map(fun x -> x + 1)
    seq1.mapi(fun i x -> x + 1)
    seq1.max()
    seq1.maxBy(fun x -> x)
    seq1.min()
    seq1.minBy(fun x -> x)
    seq1.pairwise()
    seq1.pick(fun x -> Some x)
    seq1.readonly()
    seq1.reduce(+)
    seq1.scan(3, fun z x -> x + z)
    seq1.skip(3)
    seq1.skipWhile(fun x -> x > 1)
    seq1.sort()
    seq1.sortBy(fun x -> x)
    seq1.sum()
    seq1.sumBy(fun x -> x)
    seq1.take(3)
    seq1.takeWhile(fun x -> x > 1)
    seq1.toArray()
    seq1.toList()
    seq1.toArray()
    seq1.truncate(3)
    seq1.tryFind(fun x -> x > 1)
    seq1.tryFindIndex(fun x -> x > 1)
    seq1.tryPick(fun x -> Some x)
    seq1.where(fun x -> x > 1)
    seq1.windowed(3)
    seq1.zip(seq2)
    seq1.zip3(seq1,seq2)
    seq1.contains(3)
    seq1.except(seq2)
    seq1.permute(fun x -> x)
    seq1.reduceBack(+)
    seq1.foldBack((fun x z -> x + z), 3)
    seq1.reverse()
    seq1.scanBack((+),3)
    seq1.sortWith(compare)
    seq1.sortDescending()
    seq1.chunkBySize(3)
    seq1.splitInto(3)
    seq1.tryFindIndexBack(fun x -> x > 1)
    seq1.tryFindBack(fun x -> x > 1)
    seq1.tryItem(19)
    seq1.tail()

Array functions

The fluent-style members for Array.* operations are shown below.

module ArrayExamples =
    let array1 = [| 1 .. 10 |]
    let array2 = [| 11 .. 20 |]

    array1.append(array2)
    array1.averageBy(fun x -> float x)
    array1.cache()
    array1.choose(fun x -> if x % 2 = 0 then Some x else None)
    array1.collect (fun n -> [ n; n + 1 ])
    array1.countBy(fun x -> x)
    array1.distinct()
    array1.distinctBy(fun x -> x)
    array1.exactlyOne()
    array1.exists(fun x -> x > 1)
    array1.filter(fun x -> x > 1)
    array1.find(fun x -> x > 1)
    array1.findIndex(fun x -> x > 1)
    array1.tryFind(fun x -> x > 1)
    array1.tryFindIndex(fun x -> x > 1)
    array1.tryPick(fun x -> Some x)
    array1.fold(3, fun z x -> x + z)
    array1.forall(fun x -> x > 1)
    array1.groupBy(fun x -> x)
    array1.head()
    array1.iter(fun x -> printfn "%d" x)
    array1.iteri(fun i x ->  printfn "%d" x)
    array1.last()
    array1.length
    array1.map(fun x -> x + 1)
    array1.mapi(fun i x -> x + 1)
    array1.max()
    array1.maxBy(fun x -> x)
    array1.min()
    array1.minBy(fun x -> x)
    array1.pairwise()
    array1.pick(fun x -> Some x)
    array1.readonly()
    array1.reduce(+)
    array1.scan(3, fun z x -> x + z)
    array1.skip(3)
    array1.skipWhile(fun x -> x > 1)
    array1.sort()
    array1.sortBy(fun x -> x)
    array1.sum()
    array1.sumBy(fun x -> x)
    array1.take(3)
    array1.takeWhile(fun x -> x > 1)
    array1.toArray()
    array1.toList()
    array1.toArray()
    array1.truncate(3)
    array1.tryFind(fun x -> x > 1)
    array1.tryFindIndex(fun x -> x > 1)
    array1.tryPick(fun x -> Some x)
    array1.where(fun x -> x > 1)
    array1.windowed(3)
    array1.zip(array2)
    array1.zip3(array1,array2)
    array1.contains(3)
    array1.except(array2)
    array1.permute(fun x -> x)
    array1.reduceBack(+)
    array1.foldBack((fun x z -> x + z), 3)
    array1.reverse()
    array1.scanBack((+),3)
    array1.sortWith(compare)
    array1.sortDescending()
    array1.chunkBySize(3)
    array1.splitInto(3)
    array1.tryFindIndexBack(fun x -> x > 1)
    array1.tryFindBack(fun x -> x > 1)
    array1.tryItem(19)
    array1.tail()

List functions

The fluent-style members for List.* operations are shown below.

module ListExamples =
    let list1 = [ 1 .. 10 ]
    let list2 = [ 11 .. 20 ]

    list1.append(list2)
    list1.averageBy(fun x -> float x)
    list1.cache()
    list1.choose(fun x -> if x % 2 = 0 then Some x else None)
    list1.collect (fun n -> [ n; n + 1 ])
    list1.countBy(fun x -> x)
    list1.distinct()
    list1.distinctBy(fun x -> x)
    list1.exactlyOne()
    list1.exists(fun x -> x > 1)
    list1.filter(fun x -> x > 1)
    list1.find(fun x -> x > 1)
    list1.findIndex(fun x -> x > 1)
    list1.tryFind(fun x -> x > 1)
    list1.tryFindIndex(fun x -> x > 1)
    list1.tryPick(fun x -> Some x)
    list1.fold(3, fun z x -> x + z)
    list1.forall(fun x -> x > 1)
    list1.groupBy(fun x -> x)
    list1.head()
    list1.iter(fun x -> printfn "%d" x)
    list1.iteri(fun i x ->  printfn "%d" x)
    list1.last()
    list1.length
    list1.map(fun x -> x + 1)
    list1.mapi(fun i x -> x + 1)
    list1.max()
    list1.maxBy(fun x -> x)
    list1.min()
    list1.minBy(fun x -> x)
    list1.pairwise()
    list1.pick(fun x -> Some x)
    list1.readonly()
    list1.reduce(+)
    list1.scan(3, fun z x -> x + z)
    list1.skip(3)
    list1.skipWhile(fun x -> x > 1)
    list1.sort()
    list1.sortBy(fun x -> x)
    list1.sum()
    list1.sumBy(fun x -> x)
    list1.take(3)
    list1.takeWhile(fun x -> x > 1)
    list1.toArray()
    list1.toList()
    list1.toArray()
    list1.truncate(3)
    list1.tryFind(fun x -> x > 1)
    list1.tryFindIndex(fun x -> x > 1)
    list1.tryPick(fun x -> Some x)
    list1.where(fun x -> x > 1)
    list1.windowed(3)
    list1.zip(list2)
    list1.zip3(list1,list2)
    list1.contains(3)
    list1.except(list2)
    list1.permute(fun x -> x)
    list1.reduceBack(+)
    list1.foldBack((fun x z -> x + z), 3)
    list1.reverse()
    list1.scanBack((+),3)
    list1.sortWith(compare)
    list1.sortDescending()
    list1.chunkBySize(3)
    list1.splitInto(3)
    list1.tryFindIndexBack(fun x -> x > 1)
    list1.tryFindBack(fun x -> x > 1)
    list1.tryItem(19)
    list1.tail()

Option functions

The fluent-style members for Option.* operations are shown below.

module OptionExamples =
    let option1 = Some 1
    let option2 = Some "two"

    option1.exists(fun x -> x > 1)
    option1.filter(fun x -> x > 1)
    option1.fold(3, fun z x -> x + z)
    option1.forall(fun x -> x > 1)
    option1.iter(fun x -> printfn "%d" x)
    option1.map(fun x -> x + 1)
    option1.toArray()
    option1.toList()
    option1.toArray()
    option1.foldBack((fun x z -> x + z), 3)
    option1.bind(fun x -> if x > 1 then None else Some (x+1))
    option1.toNullable()
    option2.toObj()

Observable functions

The fluent-style members for Observable.* operations are shown below.

module ObservableExamples =
    open System
    let ev1 = Event<int>()
    let ev2 = Event<int>()
    let obs1 : IObservable<int> = ev1.Publish :> _
    let obs2 : IObservable<int> = ev2.Publish :> _

    obs1.filter(fun x -> x > 1)
    obs1.map(fun x -> x + 1)
    obs1.add(fun v -> printfn "%d" v)
    obs1.choose(fun v -> if v = 1 then Some 2 else None)
    obs1.merge(obs2)
    obs1.pairwise()
    obs1.partition(fun v -> v > 1)
    obs1.scan((fun a b -> a + b), 0)
    obs1.split(fun v -> if v > 1 then Choice1Of2 v else Choice2Of2 (-v))

Event functions

The fluent-style members for Event.* operations are shown below.

module EventExamples =
    open System
    let e1 = Event<int>()
    let e2 = Event<int>()
    let ev1 = e1.Publish
    let ev2 = e2.Publish

    ev1.filter(fun x -> x > 1)
    ev1.map(fun x -> x + 1)
    ev1.add(fun v -> printfn "%d" v)
    ev1.choose(fun v -> if v = 1 then Some 2 else None)
    ev1.merge(ev2)
    ev1.pairwise()
    ev1.partition(fun v -> v > 1)
    ev1.scan(0, (fun a b -> a + b))
    ev1.split(fun v -> if v > 1 then Choice1Of2 v else Choice2Of2 (-v))

String functions

The fluent-style members for String.* operations are shown below.

module StringExamples =
    open System
    let string1 = "a"

    string1.map(fun x -> 'a')
    string1.mapi(fun i x -> 'a')
    string1.collect(fun x -> "aa")
    string1.pairwise()
    string1.replicate(3)
    string1.length

Generic pipe

A fluent generic method to simulate |>

module PipeExamples =
    (4.0).pipe(sqrt)
    "abc".pipe(String.length)
    let magnitude (vec:list<float>) = vec.sumBy(fun x -> x * x).pipe(sqrt)
Multiple items
namespace FSharp

--------------------
namespace Microsoft.FSharp
Multiple items
namespace FSharp.Core

--------------------
namespace Microsoft.FSharp.Core
namespace FSharp.Core.Fluent
val seq1: int seq
Multiple items
val seq: sequence: 'T seq -> 'T seq

--------------------
type 'T seq = System.Collections.Generic.IEnumerable<'T>
val seq2: int seq
member System.Collections.Generic.IEnumerable.append: source2: 'T seq -> 'T seq
static member SeqExtensionsConstrained.averageBy: source: 'T seq * projection: ('T -> 'U) -> 'U (requires member (+) and member DivideByInt and member Zero)
val x: int
Multiple items
val float: value: 'T -> float (requires member op_Explicit)

--------------------
type float = System.Double

--------------------
type float<'Measure> = float
member System.Collections.Generic.IEnumerable.cache: unit -> 'T seq
member System.Collections.Generic.IEnumerable.choose: chooser: ('T -> 'U option) -> 'U seq
union case Option.Some: Value: 'T -> Option<'T>
union case Option.None: Option<'T>
member System.Collections.Generic.IEnumerable.collect: mapping: ('T -> #('U seq)) -> 'U seq
val n: int
member System.Collections.Generic.IEnumerable.countBy: projection: ('T -> 'Key) -> ('Key * int) seq (requires equality)
static member SeqExtensionsConstrained.distinct: source: 'T seq -> 'T seq (requires equality)
member System.Collections.Generic.IEnumerable.distinctBy: projection: ('T -> 'Key) -> 'T seq (requires equality)
member System.Collections.Generic.IEnumerable.exactlyOne: unit -> 'T
member System.Collections.Generic.IEnumerable.exists: predicate: ('T -> bool) -> bool
member System.Collections.Generic.IEnumerable.filter: predicate: ('T -> bool) -> 'T seq
member System.Collections.Generic.IEnumerable.find: predicate: ('T -> bool) -> 'T
member System.Collections.Generic.IEnumerable.findIndex: predicate: ('T -> bool) -> int
member System.Collections.Generic.IEnumerable.tryFind: predicate: ('T -> bool) -> 'T option
member System.Collections.Generic.IEnumerable.tryFindIndex: predicate: ('T -> bool) -> int option
member System.Collections.Generic.IEnumerable.tryPick: chooser: ('T -> 'U option) -> 'U option
member System.Collections.Generic.IEnumerable.fold<'T,'State> : state: 'State * folder: ('State -> 'T -> 'State) -> 'State
val z: int
member System.Collections.Generic.IEnumerable.forall: predicate: ('T -> bool) -> bool
member System.Collections.Generic.IEnumerable.groupBy: projection: ('T -> 'Key) -> ('Key * 'T seq) seq (requires equality)
member System.Collections.Generic.IEnumerable.head: unit -> 'T
member System.Collections.Generic.IEnumerable.iter: action: ('T -> unit) -> unit
val printfn: format: Printf.TextWriterFormat<'T> -> 'T
member System.Collections.Generic.IEnumerable.iteri: action: (int -> 'T -> unit) -> unit
val i: int
member System.Collections.Generic.IEnumerable.last: unit -> 'T
property System.Collections.Generic.IEnumerable.length: int with get
<summary>Returns the length of the sequence</summary>
<returns>The length of the sequence.</returns>
<exception cref="System.ArgumentNullException">Thrown when the input sequence is null.</exception>
member System.Collections.Generic.IEnumerable.map: mapping: ('T -> 'U) -> 'U seq
member System.Collections.Generic.IEnumerable.mapi: mapping: (int -> 'T -> 'U) -> 'U seq
static member SeqExtensionsConstrained.max: source: 'T seq -> 'T (requires comparison)
static member SeqExtensionsConstrained.maxBy: source: 'T seq * projection: ('T -> 'U) -> 'T (requires comparison)
static member SeqExtensionsConstrained.min: source: 'T seq -> 'T (requires comparison)
static member SeqExtensionsConstrained.minBy: source: 'T seq * projection: ('T -> 'U) -> 'T (requires comparison)
member System.Collections.Generic.IEnumerable.pairwise: unit -> ('T * 'T) seq
member System.Collections.Generic.IEnumerable.pick: chooser: ('T -> 'U option) -> 'U
member System.Collections.Generic.IEnumerable.readonly: unit -> 'T seq
member System.Collections.Generic.IEnumerable.reduce: reduction: ('T -> 'T -> 'T) -> 'T
member System.Collections.Generic.IEnumerable.scan<'T,'State> : state: 'State * folder: ('State -> 'T -> 'State) -> 'State seq
member System.Collections.Generic.IEnumerable.skip: count: int -> 'T seq
member System.Collections.Generic.IEnumerable.skipWhile: predicate: ('T -> bool) -> 'T seq
static member SeqExtensionsConstrained.sort: source: 'T seq -> 'T seq (requires comparison)
member System.Collections.Generic.IEnumerable.sortBy: projection: ('T -> 'Key) -> 'T seq (requires comparison)
static member SeqExtensionsConstrained.sum: source: 'T seq -> 'T (requires member (+) and member Zero)
static member SeqExtensionsConstrained.sumBy: source: 'T seq * projection: ('T -> 'U) -> 'U (requires member (+) and member Zero)
member System.Collections.Generic.IEnumerable.take: count: int -> 'T seq
member System.Collections.Generic.IEnumerable.takeWhile: predicate: ('T -> bool) -> 'T seq
member System.Collections.Generic.IEnumerable.toArray: unit -> 'T array
member System.Collections.Generic.IEnumerable.toList: unit -> 'T list
member System.Collections.Generic.IEnumerable.truncate: count: int -> 'T seq
member System.Collections.Generic.IEnumerable.where: predicate: ('T -> bool) -> 'T seq
member System.Collections.Generic.IEnumerable.windowed: windowSize: int -> 'T array seq
member System.Collections.Generic.IEnumerable.zip: source2: 'T2 seq -> ('T * 'T2) seq
member System.Collections.Generic.IEnumerable.zip3: source2: 'T2 seq * source3: 'T3 seq -> ('T * 'T2 * 'T3) seq
static member SeqExtensionsConstrained.contains: source: 'T seq * value: 'T -> bool (requires equality)
static member SeqExtensionsConstrained.except: source: 'T seq * itemsToExclude: 'T seq -> 'T seq (requires equality)
member System.Collections.Generic.IEnumerable.permute: indexMap: (int -> int) -> 'T seq
member System.Collections.Generic.IEnumerable.reduceBack: reduction: ('T -> 'T -> 'T) -> 'T
member System.Collections.Generic.IEnumerable.foldBack: folder: ('T -> 'State -> 'State) * state: 'State -> 'State
member System.Collections.Generic.IEnumerable.reverse: unit -> 'T seq
member System.Collections.Generic.IEnumerable.scanBack: folder: ('T -> 'State -> 'State) * state: 'State -> 'State seq
member System.Collections.Generic.IEnumerable.sortWith: comparer: ('T -> 'T -> int) -> 'T seq
val compare: e1: 'T -> e2: 'T -> int (requires comparison)
static member SeqExtensionsConstrained.sortDescending: source: 'T seq -> 'T seq (requires comparison)
member System.Collections.Generic.IEnumerable.chunkBySize: chunkSize: int -> 'T array seq
member System.Collections.Generic.IEnumerable.splitInto: count: int -> 'T array seq
member System.Collections.Generic.IEnumerable.tryFindIndexBack: predicate: ('T -> bool) -> int option
member System.Collections.Generic.IEnumerable.tryFindBack: predicate: ('T -> bool) -> 'T option
member System.Collections.Generic.IEnumerable.tryItem: index: int -> 'T option
member System.Collections.Generic.IEnumerable.tail: unit -> 'T seq
val array1: int array
val array2: int array
member System.Collections.Generic.IEnumerable.append: source2: 'T seq -> 'T seq
member array.append: array2: 'T array -> 'T array
static member SeqExtensionsConstrained.averageBy: source: 'T seq * projection: ('T -> 'U) -> 'U (requires member (+) and member DivideByInt and member Zero)
static member ArrayExtensionsConstrained.averageBy: array: 'T array * projection: ('T -> 'U) -> 'U (requires member (+) and member DivideByInt and member Zero)
member System.Collections.Generic.IEnumerable.choose: chooser: ('T -> 'U option) -> 'U seq
member array.choose: chooser: ('T -> 'a option) -> 'a array
member System.Collections.Generic.IEnumerable.collect: mapping: ('T -> #('U seq)) -> 'U seq
member array.collect: mapping: ('T -> 'a array) -> 'a array
member System.Collections.Generic.IEnumerable.countBy: projection: ('T -> 'Key) -> ('Key * int) seq (requires equality)
member array.countBy: projection: ('T -> 'Key) -> ('Key * int) array (requires equality)
static member SeqExtensionsConstrained.distinct: source: 'T seq -> 'T seq (requires equality)
static member ArrayExtensionsConstrained.distinct: array: 'T array -> 'T array (requires equality)
member System.Collections.Generic.IEnumerable.distinctBy: projection: ('T -> 'Key) -> 'T seq (requires equality)
member array.distinctBy: projection: ('T -> 'Key) -> 'T array (requires equality)
member System.Collections.Generic.IEnumerable.exactlyOne: unit -> 'T
member array.exactlyOne: unit -> 'T
member System.Collections.Generic.IEnumerable.exists: predicate: ('T -> bool) -> bool
member array.exists: predicate: ('T -> bool) -> bool
member System.Collections.Generic.IEnumerable.filter: predicate: ('T -> bool) -> 'T seq
member array.filter: predicate: ('T -> bool) -> 'T array
member System.Collections.Generic.IEnumerable.find: predicate: ('T -> bool) -> 'T
member array.find: predicate: ('T -> bool) -> 'T
member System.Collections.Generic.IEnumerable.findIndex: predicate: ('T -> bool) -> int
member array.findIndex: predicate: ('T -> bool) -> int
member System.Collections.Generic.IEnumerable.tryFind: predicate: ('T -> bool) -> 'T option
member array.tryFind: predicate: ('T -> bool) -> 'T option
member System.Collections.Generic.IEnumerable.tryFindIndex: predicate: ('T -> bool) -> int option
member array.tryFindIndex: predicate: ('T -> bool) -> int option
member System.Collections.Generic.IEnumerable.tryPick: chooser: ('T -> 'U option) -> 'U option
member array.tryPick: chooser: ('T -> 'a option) -> 'a option
member System.Collections.Generic.IEnumerable.fold<'T,'State> : state: 'State * folder: ('State -> 'T -> 'State) -> 'State
member array.fold<'T,'State> : state: 'State * folder: ('State -> 'T -> 'State) -> 'State
member System.Collections.Generic.IEnumerable.forall: predicate: ('T -> bool) -> bool
member array.forall: predicate: ('T -> bool) -> bool
member System.Collections.Generic.IEnumerable.groupBy: projection: ('T -> 'Key) -> ('Key * 'T seq) seq (requires equality)
member array.groupBy: projection: ('T -> 'Key) -> ('Key * 'T array) array (requires equality)
member System.Collections.Generic.IEnumerable.head: unit -> 'T
member array.head: unit -> 'T
member System.Collections.Generic.IEnumerable.iter: action: ('T -> unit) -> unit
member array.iter: action: ('T -> unit) -> unit
member System.Collections.Generic.IEnumerable.iteri: action: (int -> 'T -> unit) -> unit
member array.iteri: action: (int -> 'T -> unit) -> unit
member System.Collections.Generic.IEnumerable.last: unit -> 'T
member array.last: unit -> 'T
Multiple items
property array.length: int with get
<summary>Returns the length of an array. You can also use property array.Length.</summary>
<returns>The length of the array.</returns>


--------------------
property System.Collections.Generic.IEnumerable.length: int with get
<summary>Returns the length of the sequence</summary>
<returns>The length of the sequence.</returns>
<exception cref="System.ArgumentNullException">Thrown when the input sequence is null.</exception>
member System.Collections.Generic.IEnumerable.map: mapping: ('T -> 'U) -> 'U seq
member array.map: mapping: ('T -> 'a) -> 'a array
member System.Collections.Generic.IEnumerable.mapi: mapping: (int -> 'T -> 'U) -> 'U seq
member array.mapi: mapping: (int -> 'T -> 'a) -> 'a array
static member SeqExtensionsConstrained.max: source: 'T seq -> 'T (requires comparison)
static member ArrayExtensionsConstrained.max: array: 'T array -> 'T (requires comparison)
static member SeqExtensionsConstrained.maxBy: source: 'T seq * projection: ('T -> 'U) -> 'T (requires comparison)
static member ArrayExtensionsConstrained.maxBy: array: 'T array * projection: ('T -> 'a) -> 'T (requires comparison)
static member SeqExtensionsConstrained.min: source: 'T seq -> 'T (requires comparison)
static member ArrayExtensionsConstrained.min: array: 'T array -> 'T (requires comparison)
static member SeqExtensionsConstrained.minBy: source: 'T seq * projection: ('T -> 'U) -> 'T (requires comparison)
static member ArrayExtensionsConstrained.minBy: array: 'T array * projection: ('T -> 'a) -> 'T (requires comparison)
member System.Collections.Generic.IEnumerable.pairwise: unit -> ('T * 'T) seq
member array.pairwise: unit -> ('T * 'T) array
member System.Collections.Generic.IEnumerable.pick: chooser: ('T -> 'U option) -> 'U
member array.pick: chooser: ('T -> 'a option) -> 'a
member System.Collections.Generic.IEnumerable.reduce: reduction: ('T -> 'T -> 'T) -> 'T
member array.reduce: reduction: ('T -> 'T -> 'T) -> 'T
member System.Collections.Generic.IEnumerable.scan<'T,'State> : state: 'State * folder: ('State -> 'T -> 'State) -> 'State seq
member array.scan<'T,'State> : state: 'State * folder: ('State -> 'T -> 'State) -> 'State array
member System.Collections.Generic.IEnumerable.skip: count: int -> 'T seq
member array.skip: count: int -> 'T array
member System.Collections.Generic.IEnumerable.skipWhile: predicate: ('T -> bool) -> 'T seq
member array.skipWhile: predicate: ('T -> bool) -> 'T array
static member SeqExtensionsConstrained.sort: source: 'T seq -> 'T seq (requires comparison)
static member ArrayExtensionsConstrained.sort: array: 'T array -> 'T array (requires comparison)
member System.Collections.Generic.IEnumerable.sortBy: projection: ('T -> 'Key) -> 'T seq (requires comparison)
member array.sortBy: projection: ('T -> 'Key) -> 'T array (requires comparison)
static member SeqExtensionsConstrained.sum: source: 'T seq -> 'T (requires member (+) and member Zero)
static member ArrayExtensionsConstrained.sum: array: 'T array -> 'T (requires member (+) and member Zero)
static member SeqExtensionsConstrained.sumBy: source: 'T seq * projection: ('T -> 'U) -> 'U (requires member (+) and member Zero)
static member ArrayExtensionsConstrained.sumBy: array: 'T array * projection: ('T -> 'U) -> 'U (requires member (+) and member Zero)
member System.Collections.Generic.IEnumerable.take: count: int -> 'T seq
member array.take: count: int -> 'T array
member System.Collections.Generic.IEnumerable.takeWhile: predicate: ('T -> bool) -> 'T seq
member array.takeWhile: predicate: ('T -> bool) -> 'T array
member System.Collections.Generic.IEnumerable.toList: unit -> 'T list
member array.toList: unit -> 'T list
member System.Collections.Generic.IEnumerable.truncate: count: int -> 'T seq
member array.truncate: count: int -> 'T array
member System.Collections.Generic.IEnumerable.where: predicate: ('T -> bool) -> 'T seq
member array.where: predicate: ('T -> bool) -> 'T array
member System.Collections.Generic.IEnumerable.windowed: windowSize: int -> 'T array seq
member array.windowed: windowSize: int -> 'T array array
member System.Collections.Generic.IEnumerable.zip: source2: 'T2 seq -> ('T * 'T2) seq
member array.zip: array2: 'a array -> ('T * 'a) array
member System.Collections.Generic.IEnumerable.zip3: source2: 'T2 seq * source3: 'T3 seq -> ('T * 'T2 * 'T3) seq
member array.zip3: array2: 'a array * array3: 'b array -> ('T * 'a * 'b) array
static member SeqExtensionsConstrained.contains: source: 'T seq * value: 'T -> bool (requires equality)
static member ArrayExtensionsConstrained.contains: array: 'T array * value: 'T -> bool (requires equality)
member System.Collections.Generic.IEnumerable.permute: indexMap: (int -> int) -> 'T seq
member array.permute: indexMap: (int -> int) -> 'T array
member System.Collections.Generic.IEnumerable.reduceBack: reduction: ('T -> 'T -> 'T) -> 'T
member array.reduceBack: reduction: ('T -> 'T -> 'T) -> 'T
member System.Collections.Generic.IEnumerable.foldBack: folder: ('T -> 'State -> 'State) * state: 'State -> 'State
member array.foldBack: folder: ('T -> 'State -> 'State) * state: 'State -> 'State
member System.Collections.Generic.IEnumerable.reverse: unit -> 'T seq
member array.reverse: unit -> 'T array
member System.Collections.Generic.IEnumerable.scanBack: folder: ('T -> 'State -> 'State) * state: 'State -> 'State seq
member array.scanBack: folder: ('T -> 'State -> 'State) * state: 'State -> 'State array
member System.Collections.Generic.IEnumerable.sortWith: comparer: ('T -> 'T -> int) -> 'T seq
member array.sortWith: comparer: ('T -> 'T -> int) -> 'T array
static member SeqExtensionsConstrained.sortDescending: source: 'T seq -> 'T seq (requires comparison)
static member ArrayExtensionsConstrained.sortDescending: array: 'T array -> 'T array (requires comparison)
member System.Collections.Generic.IEnumerable.tryFindIndexBack: predicate: ('T -> bool) -> int option
member array.tryFindIndexBack: predicate: ('T -> bool) -> int option
member System.Collections.Generic.IEnumerable.tryFindBack: predicate: ('T -> bool) -> 'T option
member array.tryFindBack: predicate: ('T -> bool) -> 'T option
member System.Collections.Generic.IEnumerable.tryItem: index: int -> 'T option
member array.tryItem: index: int -> 'T option
member System.Collections.Generic.IEnumerable.tail: unit -> 'T seq
member array.tail: unit -> 'T array
val list1: int list
val list2: int list
member System.Collections.Generic.IEnumerable.append: source2: 'T seq -> 'T seq
member List.append: list2: 'T list -> 'T list
static member SeqExtensionsConstrained.averageBy: source: 'T seq * projection: ('T -> 'U) -> 'U (requires member (+) and member DivideByInt and member Zero)
static member ListExtensionsConstrained.averageBy: list: 'T list * projection: ('T -> 'U) -> 'U (requires member (+) and member DivideByInt and member Zero)
member System.Collections.Generic.IEnumerable.choose: chooser: ('T -> 'U option) -> 'U seq
member List.choose: chooser: ('T -> 'a option) -> 'a list
member System.Collections.Generic.IEnumerable.collect: mapping: ('T -> #('U seq)) -> 'U seq
member List.collect: mapping: ('T -> 'a list) -> 'a list
member System.Collections.Generic.IEnumerable.countBy: projection: ('T -> 'Key) -> ('Key * int) seq (requires equality)
member List.countBy: projection: ('T -> 'Key) -> ('Key * int) list (requires equality)
static member SeqExtensionsConstrained.distinct: source: 'T seq -> 'T seq (requires equality)
static member ListExtensionsConstrained.distinct: list: 'T list -> 'T list (requires equality)
member System.Collections.Generic.IEnumerable.distinctBy: projection: ('T -> 'Key) -> 'T seq (requires equality)
member List.distinctBy: projection: ('T -> 'Key) -> 'T list (requires equality)
member System.Collections.Generic.IEnumerable.exactlyOne: unit -> 'T
member List.exactlyOne: unit -> 'T
member System.Collections.Generic.IEnumerable.exists: predicate: ('T -> bool) -> bool
member List.exists: predicate: ('T -> bool) -> bool
member System.Collections.Generic.IEnumerable.filter: predicate: ('T -> bool) -> 'T seq
member List.filter: predicate: ('T -> bool) -> 'T list
member System.Collections.Generic.IEnumerable.find: predicate: ('T -> bool) -> 'T
member List.find: predicate: ('T -> bool) -> 'T
member System.Collections.Generic.IEnumerable.findIndex: predicate: ('T -> bool) -> int
member List.findIndex: predicate: ('T -> bool) -> int
member System.Collections.Generic.IEnumerable.tryFind: predicate: ('T -> bool) -> 'T option
member List.tryFind: predicate: ('T -> bool) -> 'T option
member System.Collections.Generic.IEnumerable.tryFindIndex: predicate: ('T -> bool) -> int option
member List.tryFindIndex: predicate: ('T -> bool) -> int option
member System.Collections.Generic.IEnumerable.tryPick: chooser: ('T -> 'U option) -> 'U option
member List.tryPick: chooser: ('T -> 'a option) -> 'a option
member System.Collections.Generic.IEnumerable.fold<'T,'State> : state: 'State * folder: ('State -> 'T -> 'State) -> 'State
member List.fold<'T,'State> : state: 'State * folder: ('State -> 'T -> 'State) -> 'State
member System.Collections.Generic.IEnumerable.forall: predicate: ('T -> bool) -> bool
member List.forall: predicate: ('T -> bool) -> bool
member System.Collections.Generic.IEnumerable.groupBy: projection: ('T -> 'Key) -> ('Key * 'T seq) seq (requires equality)
member List.groupBy: projection: ('T -> 'Key) -> ('Key * 'T list) list (requires equality)
member System.Collections.Generic.IEnumerable.head: unit -> 'T
member List.head: unit -> 'T
member System.Collections.Generic.IEnumerable.iter: action: ('T -> unit) -> unit
member List.iter: action: ('T -> unit) -> unit
member System.Collections.Generic.IEnumerable.iteri: action: (int -> 'T -> unit) -> unit
member List.iteri: action: (int -> 'T -> unit) -> unit
member System.Collections.Generic.IEnumerable.last: unit -> 'T
member List.last: unit -> 'T
Multiple items
property List.length: int with get
<summary>Returns the length of an list. You can also use property source.Length.</summary>
<returns>The length of the list.</returns>


--------------------
property System.Collections.Generic.IEnumerable.length: int with get
<summary>Returns the length of the sequence</summary>
<returns>The length of the sequence.</returns>
<exception cref="System.ArgumentNullException">Thrown when the input sequence is null.</exception>
member System.Collections.Generic.IEnumerable.map: mapping: ('T -> 'U) -> 'U seq
member List.map: mapping: ('T -> 'a) -> 'a list
member System.Collections.Generic.IEnumerable.mapi: mapping: (int -> 'T -> 'U) -> 'U seq
member List.mapi: mapping: (int -> 'T -> 'a) -> 'a list
static member SeqExtensionsConstrained.max: source: 'T seq -> 'T (requires comparison)
static member ListExtensionsConstrained.max: list: 'T list -> 'T (requires comparison)
static member SeqExtensionsConstrained.maxBy: source: 'T seq * projection: ('T -> 'U) -> 'T (requires comparison)
static member ListExtensionsConstrained.maxBy: list: 'T list * projection: ('T -> 'Key) -> 'T (requires comparison)
static member SeqExtensionsConstrained.min: source: 'T seq -> 'T (requires comparison)
static member ListExtensionsConstrained.min: list: 'T list -> 'T (requires comparison)
static member SeqExtensionsConstrained.minBy: source: 'T seq * projection: ('T -> 'U) -> 'T (requires comparison)
static member ListExtensionsConstrained.minBy: list: 'T list * projection: ('T -> 'Key) -> 'T (requires comparison)
member System.Collections.Generic.IEnumerable.pairwise: unit -> ('T * 'T) seq
member List.pairwise: unit -> ('T * 'T) list
member System.Collections.Generic.IEnumerable.pick: chooser: ('T -> 'U option) -> 'U
member List.pick: chooser: ('T -> 'a option) -> 'a
member System.Collections.Generic.IEnumerable.reduce: reduction: ('T -> 'T -> 'T) -> 'T
member List.reduce: reduction: ('T -> 'T -> 'T) -> 'T
member System.Collections.Generic.IEnumerable.scan<'T,'State> : state: 'State * folder: ('State -> 'T -> 'State) -> 'State seq
member List.scan<'T,'State> : state: 'State * folder: ('State -> 'T -> 'State) -> 'State list
member System.Collections.Generic.IEnumerable.skip: count: int -> 'T seq
member List.skip: count: int -> 'T list
member System.Collections.Generic.IEnumerable.skipWhile: predicate: ('T -> bool) -> 'T seq
member List.skipWhile: predicate: ('T -> bool) -> 'T list
static member SeqExtensionsConstrained.sort: source: 'T seq -> 'T seq (requires comparison)
static member ListExtensionsConstrained.sort: list: 'T list -> 'T list (requires comparison)
member System.Collections.Generic.IEnumerable.sortBy: projection: ('T -> 'Key) -> 'T seq (requires comparison)
member List.sortBy: projection: ('T -> 'Key) -> 'T list (requires comparison)
static member SeqExtensionsConstrained.sum: source: 'T seq -> 'T (requires member (+) and member Zero)
static member ListExtensionsConstrained.sum: list: 'T list -> 'T (requires member (+) and member Zero)
static member SeqExtensionsConstrained.sumBy: source: 'T seq * projection: ('T -> 'U) -> 'U (requires member (+) and member Zero)
static member ListExtensionsConstrained.sumBy: list: 'T list * projection: ('T -> 'U) -> 'U (requires member (+) and member Zero)
member System.Collections.Generic.IEnumerable.take: count: int -> 'T seq
member List.take: count: int -> 'T list
member System.Collections.Generic.IEnumerable.takeWhile: predicate: ('T -> bool) -> 'T seq
member List.takeWhile: predicate: ('T -> bool) -> 'T list
member System.Collections.Generic.IEnumerable.truncate: count: int -> 'T seq
member List.truncate: count: int -> 'T list
member System.Collections.Generic.IEnumerable.where: predicate: ('T -> bool) -> 'T seq
member List.where: predicate: ('T -> bool) -> 'T list
member System.Collections.Generic.IEnumerable.windowed: windowSize: int -> 'T array seq
member List.windowed: windowSize: int -> 'T list list
member System.Collections.Generic.IEnumerable.zip: source2: 'T2 seq -> ('T * 'T2) seq
member List.zip: list2: 'T2 list -> ('T * 'T2) list
member System.Collections.Generic.IEnumerable.zip3: source2: 'T2 seq * source3: 'T3 seq -> ('T * 'T2 * 'T3) seq
member List.zip3: list2: 'T2 list * list3: 'T3 list -> ('T * 'T2 * 'T3) list
member System.Collections.Generic.IEnumerable.permute: indexMap: (int -> int) -> 'T seq
member List.permute: indexMap: (int -> int) -> 'T list
member System.Collections.Generic.IEnumerable.reduceBack: reduction: ('T -> 'T -> 'T) -> 'T
member List.reduceBack: reduction: ('T -> 'T -> 'T) -> 'T
member System.Collections.Generic.IEnumerable.foldBack: folder: ('T -> 'State -> 'State) * state: 'State -> 'State
member List.foldBack: folder: ('T -> 'State -> 'State) * state: 'State -> 'State
member System.Collections.Generic.IEnumerable.reverse: unit -> 'T seq
member List.reverse: unit -> 'T list
member System.Collections.Generic.IEnumerable.scanBack: folder: ('T -> 'State -> 'State) * state: 'State -> 'State seq
member List.scanBack: folder: ('T -> 'State -> 'State) * state: 'State -> 'State list
member System.Collections.Generic.IEnumerable.sortWith: comparer: ('T -> 'T -> int) -> 'T seq
member List.sortWith: comparer: ('T -> 'T -> int) -> 'T list
member System.Collections.Generic.IEnumerable.tryFindIndexBack: predicate: ('T -> bool) -> int option
member List.tryFindIndexBack: predicate: ('T -> bool) -> int option
member System.Collections.Generic.IEnumerable.tryFindBack: predicate: ('T -> bool) -> 'T option
member List.tryFindBack: predicate: ('T -> bool) -> 'T option
member System.Collections.Generic.IEnumerable.tryItem: index: int -> 'T option
member List.tryItem: index: int -> 'T option
member System.Collections.Generic.IEnumerable.tail: unit -> 'T seq
member List.tail: unit -> 'T list
val option1: int option
val option2: string option
member Option.exists: predicate: ('T -> bool) -> bool
member Option.filter: predicate: ('T -> bool) -> 'T option
member Option.fold<'T,'State> : state: 'State * folder: ('State -> 'T -> 'State) -> 'State
member Option.forall: predicate: ('T -> bool) -> bool
member Option.iter: action: ('T -> unit) -> unit
member Option.map: mapping: ('T -> 'U) -> 'U option
member Option.toArray: unit -> 'T array
member Option.toList: unit -> 'T list
member Option.foldBack: folder: ('T -> 'State -> 'State) * state: 'State -> 'State
member Option.bind: binder: ('T -> 'U option) -> 'U option
static member OptionExtensionsConstrained.toNullable: opt: 'T option -> System.Nullable<'T> (requires default constructor and value type and 'T :> System.ValueType)
static member OptionExtensionsConstrained.toObj: opt: 'T option -> 'T (requires 'T: null)
namespace System
val ev1: Event<int>
Multiple items
module Event from Microsoft.FSharp.Control

--------------------
type Event<'T> = new: unit -> Event<'T> member Trigger: arg: 'T -> unit member Publish: IEvent<'T>

--------------------
type Event<'Delegate,'Args (requires delegate and 'Delegate :> Delegate and reference type)> = new: unit -> Event<'Delegate,'Args> member Trigger: sender: obj * args: 'Args -> unit member Publish: IEvent<'Delegate,'Args>

--------------------
new: unit -> Event<'T>

--------------------
new: unit -> Event<'Delegate,'Args>
Multiple items
val int: value: 'T -> int (requires member op_Explicit)

--------------------
type int = int32

--------------------
type int<'Measure> = int
val ev2: Event<int>
val obs1: IObservable<int>
type IObservable<'T> = override Subscribe: observer: IObserver<'T> -> IDisposable
<summary>Defines a provider for push-based notification.</summary>
<typeparam name="T">The object that provides notification information.</typeparam>
property Event.Publish: IEvent<int> with get
val obs2: IObservable<int>
member IObservable.filter: predicate: ('T -> bool) -> IObservable<'T>
member IObservable.map: mapping: ('T -> 'U) -> IObservable<'U>
member IObservable.add: callback: ('T -> unit) -> unit
val v: int
member IObservable.choose: chooser: ('T -> 'U option) -> IObservable<'U>
member IObservable.merge: obs2: IObservable<'T> -> IObservable<'T>
member IObservable.pairwise: unit -> IObservable<'T * 'T>
member IObservable.partition: predicate: ('T -> bool) -> IObservable<'T> * IObservable<'T>
member IObservable.scan<'T,'U> : state: 'U * collector: ('U -> 'T -> 'U) -> IObservable<'U>
val a: int
val b: int
member IObservable.split: splitter: ('T -> Choice<'U1,'U2>) -> IObservable<'U1> * IObservable<'U2>
union case Choice.Choice1Of2: 'T1 -> Choice<'T1,'T2>
union case Choice.Choice2Of2: 'T2 -> Choice<'T1,'T2>
val e1: Event<int>
val e2: Event<int>
val ev1: IEvent<int>
val ev2: IEvent<int>
member IObservable.filter: predicate: ('T -> bool) -> IObservable<'T>
member IEvent.filter: predicate: ('T -> bool) -> IEvent<'T>
member IObservable.map: mapping: ('T -> 'U) -> IObservable<'U>
member IEvent.map: mapping: ('T -> 'U) -> IEvent<'U>
member IObservable.add: callback: ('T -> unit) -> unit
member IEvent.add: callback: ('T -> unit) -> unit
member IObservable.choose: chooser: ('T -> 'U option) -> IObservable<'U>
member IEvent.choose: chooser: ('T -> 'U option) -> IEvent<'U>
member IObservable.merge: obs2: IObservable<'T> -> IObservable<'T>
member IEvent.merge: evt2: IEvent<'Del2,'T> -> IEvent<'T> (requires delegate and 'Del2 :> Delegate)
member IObservable.pairwise: unit -> IObservable<'T * 'T>
member IEvent.pairwise: unit -> IEvent<'T * 'T>
member IObservable.partition: predicate: ('T -> bool) -> IObservable<'T> * IObservable<'T>
member IEvent.partition: predicate: ('T -> bool) -> IEvent<'T> * IEvent<'T>
member IObservable.scan<'T,'U> : state: 'U * collector: ('U -> 'T -> 'U) -> IObservable<'U>
member IEvent.scan: state: 'U * collector: ('U -> 'T -> 'U) -> IEvent<'U>
member IObservable.split: splitter: ('T -> Choice<'U1,'U2>) -> IObservable<'U1> * IObservable<'U2>
member IEvent.split: splitter: ('T -> Choice<'U1,'U2>) -> IEvent<'U1> * IEvent<'U2>
val string1: string
member Collections.Generic.IEnumerable.map: mapping: ('T -> 'U) -> 'U seq
member String.map: mapping: (char -> char) -> string
val x: char
member Collections.Generic.IEnumerable.mapi: mapping: (int -> 'T -> 'U) -> 'U seq
member String.mapi: mapping: (int -> char -> char) -> string
member Collections.Generic.IEnumerable.collect: mapping: ('T -> #('U seq)) -> 'U seq
member String.collect: mapping: (char -> string) -> string
member Collections.Generic.IEnumerable.pairwise: unit -> ('T * 'T) seq
member String.replicate: count: int -> string
Multiple items
property String.length: int with get
<summary>Returns the length of the string.</summary>
<returns>The number of characters in the string.</returns>


--------------------
property Collections.Generic.IEnumerable.length: int with get
<summary>Returns the length of the sequence</summary>
<returns>The length of the sequence.</returns>
<exception cref="System.ArgumentNullException">Thrown when the input sequence is null.</exception>
module PipeExamples from Fluent
val sqrt: value: 'T -> 'U (requires member Sqrt)
module String from Microsoft.FSharp.Core
val length: str: string -> int
val magnitude: vec: float list -> float
val vec: float list
type 'T list = List<'T>
val x: float

Type something to start searching.