Copyright | (c) The University of Glasgow 2001 |
---|---|

License | BSD-style (see the file libraries/base/LICENSE) |

Maintainer | libraries@haskell.org |

Stability | experimental |

Portability | portable |

Safe Haskell | Trustworthy |

Language | Haskell2010 |

The `Bool`

type and related functions.

(&&) :: 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.

Basic usage:

`>>>`

"bar"`bool "foo" "bar" True`

`>>>`

"foo"`bool "foo" "bar" False`

Confirm that `bool x y p`

and `if p then y else x`

are equivalent:

`>>>`

`let p = True; x = "bar"; y = "foo"`

`>>>`

True`bool x y p == if p then y else x`

`>>>`

`let p = False`

`>>>`

True`bool x y p == if p then y else x`

Since: 4.7.0.0

© The University of Glasgow and others

Licensed under a BSD-style license (see top of the page).

https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/base-4.8.2.0/Data-Bool.html