Safe Haskell | None |
---|---|

Language | Haskell2010 |

A list of entities with relative frequencies of appearance.

## Synopsis

- data Frequency a
- uniformFreq :: Text -> [a] -> Frequency a
- toFreq :: Text -> [(Int, a)] -> Frequency a
- scaleFreq :: Show a => Int -> Frequency a -> Frequency a
- renameFreq :: Text -> Frequency a -> Frequency a
- setFreq :: Eq a => Frequency a -> a -> Int -> Frequency a
- nullFreq :: Frequency a -> Bool
- runFrequency :: Frequency a -> [(Int, a)]
- nameFrequency :: Frequency a -> Text
- minFreq :: Ord a => Frequency a -> Maybe a
- maxFreq :: Ord a => Frequency a -> Maybe a
- mostFreq :: Frequency a -> Maybe a

# The `Frequency`

type

The frequency distribution type. Not normalized (operations may or may not group the same elements and sum their frequencies). However, elements with zero frequency are removed upon construction.

The `Eq`

instance compares raw representations, not relative,
normalized frequencies, so operations don't need to preserve
the expected equalities.

## Instances

# Construction

uniformFreq :: Text -> [a] -> Frequency a Source #

Uniform discrete frequency distribution.

toFreq :: Text -> [(Int, a)] -> Frequency a Source #

Takes a name and a list of frequencies and items into the frequency distribution.

# Transformation

scaleFreq :: Show a => Int -> Frequency a -> Frequency a Source #

Scale frequency distribution, multiplying it by a positive integer constant.

# Consumption

runFrequency :: Frequency a -> [(Int, a)] Source #

give acces to raw frequency values

nameFrequency :: Frequency a -> Text Source #

short description for debug, etc.