Safe Haskell | Safe-Infered |
---|

`AUTHOR`

- Dr. Alistair Ward
`DESCRIPTION`

- Provides various
*hyperoperations*; http://en.wikipedia.org/wiki/Hyperoperation.

- type Base = Integer
- type HyperExponent = Base
- succession, hexation, pentation, tetration, exponentiation, multiplication, addition :: Int
- hyperoperation :: (Integral rank, Show rank) => rank -> Base -> HyperExponent -> Base
- ackermannPeter :: (Integral rank, Show rank) => rank -> HyperExponent -> Base
- powerTower :: (Integral base, Integral hyperExponent, Show base) => base -> hyperExponent -> base
- areCoincidental :: (Integral rank, Show rank) => Base -> HyperExponent -> [rank] -> Bool

# Types

## Type-synonyms

type HyperExponent = BaseSource

- Merely to enhance self-documentation.
- CAVEAT: whilst
`Base`

and`HyperExponent`

can be independent types for both`exponentiation`

and`tetration`

, they interact for other*hyper-exponents*.

# Constants

# Functions

hyperoperation :: (Integral rank, Show rank) => rank -> Base -> HyperExponent -> BaseSource

The *hyperoperation*-sequence; http://en.wikipedia.org/wiki/Hyperoperation.

ackermannPeter :: (Integral rank, Show rank) => rank -> HyperExponent -> BaseSource

The *Ackermann-Peter*-function; http://en.wikipedia.org/wiki/Ackermann_function#Ackermann_numbers.

powerTower :: (Integral base, Integral hyperExponent, Show base) => base -> hyperExponent -> baseSource

- Returns the
*power-tower*of the specified*base*; http://mathworld.wolfram.com/PowerTower.html. - A synonym for
*tetration*; http://en.wikipedia.org/wiki/Tetration, http://www.tetration.org/Fractals/Atlas/index.html.

## Predicates

areCoincidental :: (Integral rank, Show rank) => Base -> HyperExponent -> [rank] -> BoolSource

True if `hyperoperation base hyperExponent`

has the same value for each specified `rank`

.