我有一个List a和一个Maybe a.我想附加可能的值,如果它是,Just a但如果它是什么都不做Nothing.
这就是我目前使用的:
aList ++ case maybeValue of
Just value ->
[ value ]
Nothing ->
[]
Run Code Online (Sandbox Code Playgroud)
这样做有更好的(更惯用的)方法吗?
请注意,如果有更简洁的方法,那么前置也很好.列表顺序无关紧要.
根据乍得的建议,预先准备更便宜:
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)
我认为你可以使用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)
你可以在艾莉身上试试