[Haskell-cafe] Maybe type filtered
Ivan Lazar Miljenovic
ivan.miljenovic at gmail.com
Thu Jan 3 03:53:00 UTC 2019
That's because you still have "Just a" values. Try mapMaybe from Data.Maybe
instead.
On mobile; please excuse any tpyos.
On Thu, 3 Jan. 2019, 1:29 pm Damien Mattei <damien.mattei at gmail.com wrote:
> i repost because it seems that the first post of the year in haskell cafe
> ailing list has been lost! i cant't see in the archive of january neither
> december....
> so here it is again:
>
> On Tue, Jan 1, 2019 at 10:25 AM 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/20190103/f0d42828/attachment.html>
More information about the Haskell-Cafe
mailing list