Połącz F # async i być może wyrażenie obliczeniowe
Powiedz, że chcę zwrócićOption
będąc wasync
przepływ pracy:
let run =
async {
let! x = doAsyncThing
let! y = doNextAsyncThing x
match y with
| None -> return None
| Some z -> return Some <| f z
}
Najlepiej byłoby użyć wyrażenia być może obliczeniowego z FSharpx w tym samym czasie co asynchronicznego, aby uniknąć wykonywaniamatch
. Mogłem utworzyć niestandardowy program budujący, ale czy istnieje sposób na ogólne połączenie dwóch wyrażeń obliczeniowych? Może to wyglądać mniej więcej tak:
let run =
async {
let! x = doAsyncThing
let! y = doNextAsyncThing x
return! f y
}