在Elm中附加可能列表

Ral*_*lph 5 list maybe elm

我有一个List a和一个Maybe a.我想附加可能的值,如果它是,Just a但如果它是什么都不做Nothing.

这就是我目前使用的:

aList ++ case maybeValue of
           Just value ->
             [ value ]
           Nothing ->
             []
Run Code Online (Sandbox Code Playgroud)

这样做有更好的(更惯用的)方法吗?

请注意,如果有更简洁的方法,那么前置也很好.列表顺序无关紧要.

gen*_*ler 6

根据乍得的建议,预先准备更便宜:

prependMaybe : List a -> Maybe a -> List a
prependMaybe list maybe =
   case maybe of
           Just value ->
             value :: list
           Nothing ->
             list
Run Code Online (Sandbox Code Playgroud)


gab*_*les 5

我认为你可以使用Maybe.map List.singleton yourMaybe |> Maybe.withDefault [].

这里有一个完整的例子:

appendMaybe : List a -> Maybe a -> List a
appendMaybe list maybe =
    Maybe.map List.singleton maybe
        |> Maybe.withDefault []
        |> (++) list
Run Code Online (Sandbox Code Playgroud)

你可以在艾莉身上试试