-
DoAndIfThenElse -
- Since:
-
7.0.1
- Status:
-
Included in
Haskell2010
Allow semicolons in
ifexpressions.
Normally, a conditional is written like this: if cond then expr1 else expr2. With the extension DoAndIfThenElse, semicolons are allowed before the then and also before the else, allowing if cond; then expr1; else expr2. (You can also include either semicolon on its own.)
Allowing semicolons in the middle of a conditional is useful in connection with layout-controlled blocks, like do-blocks. This is because GHC invisibly inserts a semicolon between each line of a layout-controlled block. Accordingly, with DoAndIfThenElse, we can write code like this
f mb x y = do b <- mb if b then x else y
Without DoAndIfThenElse, the then and else lines would have to be indented with respect to the rest of the lines in the do-block.