If its monadic code then use Control.Monad.when.

If its pure code then omitting the 'else' clause makes no sense what-so-ever; to omit the else you must know the boolean is always true so why have the if?  See the "Common Misunderstandings" [1] page I put together in response to seeing one too many people trip over exactly this issue.

Thomas

[1] http://haskell.org/haskellwiki/Common_Misunderstandings

On Wed, Oct 21, 2009 at 5:43 PM, michael rice <nowgate@yahoo.com> wrote:
It looks like both the THEN and the ELSE in an IF expression must each have an expression. What's a graceful way to do nothing in either or both slots, kind of like the Fortran CONTINUE statement.

  --mr

================

[michael@localhost ~]$ ghci
GHCi, version 6.10.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer ... linking ... done.
Loading package base ... linking ... done.
Prelude> if (1==1) then else

<interactive>:1:15: parse error on input `else'
Prelude> if (1==1) then True else

<interactive>:1:24: parse error (possibly incorrect indentation)
Prelude> if (1==1) then True else False
True
Prelude>



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe