Скажем, я хочу вернуть Option
в рабочий процесс async
:
let run =
async {
let! x = doAsyncThing
let! y = doNextAsyncThing x
match y with
| None -> return None
| Some z -> return Some <| f z
}
В идеале я бы использовал, возможно, выражение вычисления из FSharpx одновременно с async, чтобы избежать выполнения match
. Я мог бы создать пользовательский построитель, но есть ли способ объединить два выражения вычислений? Это может выглядеть примерно так:
let run =
async {
let! x = doAsyncThing
let! y = doNextAsyncThing x
return! f y
}