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