[Haskell-cafe] remove Maybe
Bob Ippolito
bob at redivi.com
Thu Jan 3 04:29:32 UTC 2019
One way to figure out how to solve this problem is to search Hoogle for the
type of function you’re looking for, in this case: [Maybe a] -> [a]
https://www.haskell.org/hoogle/?hoogle=%5BMaybe+a%5D+-%3E+a
You’ll find that such a function exists in Data.Maybe and it is named
catMaybes. No need to filter out Nothing separately, this function will do
it.
On Wed, Jan 2, 2019 at 20:08 Damien Mattei <damien.mattei at gmail.com> wrote:
> i had filtered a [Maybe Text] type to remove Nothing from the list and now
> i want to put the result in a [Text] type but the compiler complains about
> the incompatible type :
>
> (bd_rows_WDS :: [Only (Maybe Text)]) <- query conn qry_head_WDS (Only
> (name::String))
>
> -- remove the records having N°BD NULL
> let fltWDS :: [Only Text] = Prelude.filter (\(Only a) ->
> case a of
> Nothing -> False
> Just a -> True)
> bd_rows_WDS
>
> Prelude> :load UpdateSidonie
> [1 of 1] Compiling Main ( UpdateSidonie.hs, interpreted )
>
> UpdateSidonie.hs:282:33: error:
> • Couldn't match type ‘Maybe Text’ with ‘Text’
> Expected type: [Only Text]
> Actual type: [Only (Maybe Text)]
> • In the expression:
> Prelude.filter
> (\ (Only a)
> -> case a of
> Nothing -> False
> Just a -> True)
> bd_rows_WDS
> In a pattern binding:
> fltWDS :: [Only Text]
> = Prelude.filter
> (\ (Only a)
> -> case a of
> Nothing -> False
> Just a -> True)
> bd_rows_WDS
> In the expression:
> do conn <- connect
> defaultConnectInfo
> {connectHost = "moita", connectUser = "mattei",
> connectPassword = "sidonie2", connectDatabase =
> "sidonie"}
> (rows :: [(Text, Double)]) <- query_
> conn
> "SELECT Nom,distance FROM
> AngularDistance WHERE distance > 0.000278"
> (names :: [Only Text]) <- query_
> conn
> "SELECT Nom FROM AngularDistance
> WHERE distance > 0.000278"
> let resLstNames = Prelude.map fromOnly names
> ....
> |
> 282 | let fltWDS :: [Only Text] = Prelude.filter (\(Only a) ->
> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
> Failed, no modules loaded.
>
> how can id do the type conversion,now i'm sure there is no more Nothing
> values?
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20190102/f2c51aa3/attachment.html>
More information about the Haskell-Cafe
mailing list