Skip to content

Instantly share code, notes, and snippets.

@chandru89new
Created February 13, 2022 02:54
Show Gist options
  • Select an option

  • Save chandru89new/c939146fd88d6bcd5282072c5f6133f6 to your computer and use it in GitHub Desktop.

Select an option

Save chandru89new/c939146fd88d6bcd5282072c5f6133f6 to your computer and use it in GitHub Desktop.
sequence list maybe a
seqMaybe : List (Maybe a) -> Maybe (List a)
seqMaybe list =
let
go : List (Maybe a) -> Maybe (Array a) -> Maybe (Array a)
go l acc =
case l of
[] ->
acc
head :: tail ->
case head of
Nothing ->
Nothing
Just x ->
go tail (Maybe.map (\a -> Array.push x a) acc)
in
go list (Just Array.empty) |> Maybe.map Array.toList
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment