Chessie
Chessie copied to clipboard
Better map operator
To compose results in a nice way, more operators would be useful. The one I always end up implementing is a flipped map/(<!>):
// fromProcess returns a Result<string,ProcessMessage>
// with <!> operator
let devices' () =
Process.exec "." Adb.adb "devices"
|> fromProcess
|> (<!>) Strings.toLines
|> (<!>) (Seq.choose device)
|> (<!>) (Seq.map ((flip>>uncurry) model))
// with flipped <!>
let inline (<**>) x y = (flip (<!>)) x y
let devices () =
Process.exec "." Adb.adb "devices"
|> fromProcess
<**> Strings.toLines
<**> (Seq.choose device)
<**> (Seq.map ((flip>>uncurry) model))