Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to best handle IO Bool logic?

I see myself using this pattern a lot:

f x = do
  -- predicate :: a -> IO Bool
  b <- predicate x
  if b then 
    rest ()
  else
    return ()
  where
    rest () = do
      -- rest of my IO operations

is there a pattern other people use to remove the if then else where clauses? How do you best work with control flow and IO Bool?

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

Check out when and unless.

f x = do
  b <- predicate x
  when b $ do
    -- rest of the IO operation

In the extra package there also is whenM.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading