Skip to content

Commit 0f49040

Browse files
isaacabrahamTheAngryByrd
authored andcommitted
traverseResultA
1 parent 4d7bcb8 commit 0f49040

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/FsToolkit.ErrorHandling/List.fs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,17 @@ module List =
5252

5353

5454
let rec private traverseResultA' state f xs =
55-
match xs with
56-
| [] -> state
57-
| x :: xs ->
55+
match state, xs with
56+
| Ok v, [] ->
57+
Ok (List.rev v)
58+
| v, [] ->
59+
v
60+
| _, x :: xs ->
5861
let fR =
5962
f x |> Result.mapError List.singleton
6063
match state, fR with
6164
| Ok ys, Ok y ->
62-
traverseResultA' (Ok (ys @ [y])) f xs
65+
traverseResultA' (Ok (y :: ys)) f xs
6366
| Error errs, Error e ->
6467
traverseResultA' (Error (errs @ e)) f xs
6568
| Ok _, Error e | Error e , Ok _ ->

0 commit comments

Comments
 (0)