apply

Namespace: FsToolkit.ErrorHandling

Function Signature:

Task<('a -> 'b) voption> -> Task<'a voption> -> Task<'b voption>

Examples

Take the following function for example

// string -> int
let characterCount (s: string) = s.Length

Example 1

let result =
    TaskValueOption.valueSome "foo" // Task<string voption>
    |> TaskValueOption.apply (TaskValueOption.valueSome characterCount) // Task<int voption>

// task { ValueSome 3 }

Example 2

let result =
    Task.singleton ValueNone // Task<string voption>
    |> TaskValueOption.apply (TaskValueOption.valueSome characterCount) // Task<int voption>

// task { ValueNone }

Example 3

let result : Task<int voption> =
    TaskValueOption.valueSome "foo" // Task<string voption>
    |> TaskValueOption.apply (Task.singleton ValueNone) // Task<int voption>

// task { ValueNone }

Last updated