base-4.8.2.0: Basic libraries

Data.Bool

Contents

Description

The Bool type and related functions.

Synopsis

Booleans

data Bool :: * Source

Constructors

 False True

Instances

 type Rep Bool type (==) Bool a b

Operations

(&&) :: Bool -> Bool -> Bool infixr 3 Source

Boolean "and"

(||) :: Bool -> Bool -> Bool infixr 2 Source

Boolean "or"

Boolean "not"

otherwise is defined as the value True. It helps to make guards more readable. eg.

f x | x < 0     = ...
| otherwise = ...

bool :: a -> a -> Bool -> a Source

Case analysis for the Bool type. bool x y p evaluates to x when p is False, and evaluates to y when p is True.

This is equivalent to if p then y else x; that is, one can think of it as an if-then-else construct with its arguments reordered.

Examples

Basic usage:

>>> bool "foo" "bar" True
"bar"
>>> bool "foo" "bar" False
"foo"

Confirm that bool x y p and if p then y else x are equivalent:

>>> let p = True; x = "bar"; y = "foo"
>>> bool x y p == if p then y else x
True
>>> let p = False
>>> bool x y p == if p then y else x
True

Since: 4.7.0.0