
cool... forM_ bd_rows_WDS $ \(Only x) -> putStrLn $ "x =" ++ maybe "NULL" Text.unpack x it worked... thank you , i will which on i use because i need to forget all NULL values ,get just an answer strange lazy evaluation at runtime i had error at this: putStrLn "before query WDS" bd_rows_WDS <- query conn qry_head_WDS (Only (name::String)) putStrLn "after query WDS" and it has been solved 20 lines below withe maybe: forM_ bd_rows_WDS $ \(Only x) -> putStrLn $ "x =" ++ maybe "NULL" Text.unpack x that now deal with NULL values i suppose it's because until some printing is done nothing is evaluated before in lazy programming... Le 18/12/2018 16:22, Neil Mayhew a écrit :
On 2018-12-18 7:43 AM, Damien Mattei wrote:
i hoped asked could avoid using sort of Null pointer as mentioned in this article: https://www.lucidchart.com/techblog/2015/08/31/the-worst-mistake-of-computer... if someone else have a simpler solution email me
You can avoid it: make the DNUM column non-NULL in your database schema. That "worst mistake" applies to databases as well as programming languages! :-)
If you have to allow NULL in the database, then you have to handle Nothing in your code. However, a neater way of doing it is to use the maybe function:
forM_ bd_rows_WDS $ \(Only x) -> putStrLn $ "x =" ++ maybe "" Text.unpack x
This allows you to provide a default value in your code for when the column is NULL.
_______________________________________________ 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.
-- Damien.Mattei@unice.fr, Damien.Mattei@oca.eu, UNS / OCA / CNRS