-
DoAndIfThenElse -
- Версия:
-
7.0.1
- Статус:
-
Включено в
Haskell2010
Разрешает использовать точки с запятой в выражениях
if.
Обычно условное выражение записывается так: if cond then expr1 else expr2. С расширением DoAndIfThenElse точки с запятой разрешены перед then, а также перед else, что позволяет писать if cond; then expr1; else expr2. (Также можно использовать каждую из этих точек с запятой отдельно.)
Возможность использовать точки с запятой в середине условного выражения полезна в сочетании с блоками, управляемыми отступами, например, do-блоками. Это связано с тем, что GHC незаметно вставляет точку с запятой между каждой строкой такого блока. Поэтому с расширением DoAndIfThenElse можно писать код, например, так
f mb x y = do b <- mb if b then x else y
Без расширения DoAndIfThenElse строки then и else пришлось бы сдвинуть относительно остальных строк в do-блоке.