[Haskell-cafe] return?

Donald Bruce Stewart dons at cse.unsw.edu.au
Tue Feb 20 03:06:58 EST 2007

>    Hi,
>        I am writing a recursive function which does some IO
>    operation. I encounter situation in which my function has to
>    end recursion by doing "nothing" and otherwise keep calling
>    same function with some different parameters. I did not find
>    anything equivalent to "pass" or "return" statement in
>    Haskell. Presently I have got a workaround. I am doing it by
>    putting a dummy print as described below.
>    can anybody help me in this?
>    e.g
>    f some_params =
>           if some_condition
>              then do putStr "Hacky way to do nothing!"
>              else do perform_some_IO
>                           f some_other_params

Two usual ways:

import Control.Monad

f xs | condition = return ()
     | otherwise = do io
                      f ys

f xs = when (not.condition) $ do
    f ys

More information about the Haskell-Cafe mailing list