Computation Expression
Validation Computation Expression
type Validation<'a,'err> = Result<'a, 'err list>Examples:
// string -> Result<int, string>
let tryParseInt (str: string) =
match System.Int32.TryParse str with
| true, x -> Ok x
| false, _ ->
Error (sprintf "unable to parse '%s' to integer" str)Example 1
// Validation<int, string>
let addResult = validation {
let! x = tryParseInt "35"
and! y = tryParseInt "5"
and! z = tryParseInt "2"
return add x y z
}
// Ok 42Validation "Gotchas"
Combining CE's
Last updated