Объединить F # асинхронное и, возможно, вычислительное выражение
Скажи, что я хочу вернуть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
}