Chessie icon indicating copy to clipboard operation
Chessie copied to clipboard

Better map operator

Open devboy opened this issue 9 years ago • 0 comments

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))

devboy avatar Nov 13 '15 00:11 devboy