[Haskell-beginners] filterM function

Shishir Srivastava shishir.srivastava at gmail.com
Wed Apr 22 08:31:01 UTC 2015


Hi,

Continuing on from my previous question about powerset using filterM -
Thanks to Alexey and Chaddaï.

filterM is implemented as below -

----

filterM _ []     =  return []
filterM p (x:xs) =  do
   flg <- p x
   ys  <- filterM p xs
   return (if flg then x:ys else ys)

---

I still don't quite understand how 'flg' being a boolean [] is used in the
last 'if statement' of implementation because when I try to do the same
thing outside in GHCi it fails miserably even though I am casting it to
[Int] -

--
return (if [True, False] then "4" else "3")::[Int]
--

Offtopic : Also if someone can explain how do I reply to individual
mails/responses to my queries because I only get a digest on my gmail and
there is no way to isolate and reply to individual mails either this list's
page or from digest.

Thanks,
Shishir
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20150422/6fca8b08/attachment.html>


More information about the Beginners mailing list