Safe Haskell | None |
---|
Game.LambdaHack.Utils.Frequency
Description
A list of items with relative frequencies of appearance.
- data Frequency a
- uniformFreq :: [a] -> Frequency a
- toFreq :: [(Int, a)] -> Frequency a
- scaleFreq :: Int -> Frequency a -> Frequency a
- filterFreq :: (a -> Bool) -> Frequency a -> Frequency a
- rollFreq :: Show a => Frequency a -> StdGen -> (a, StdGen)
- nullFreq :: Frequency a -> Bool
- runFrequency :: Frequency a -> [(Int, a)]
The Frequency
type
The frequency distribution type.
Construction
uniformFreq :: [a] -> Frequency aSource
Uniform discrete frequency distribution.
toFreq :: [(Int, a)] -> Frequency aSource
Takes a list of frequencies and items into the frequency distribution.
Transformation
scaleFreq :: Int -> Frequency a -> Frequency aSource
Scale frequecy distribution, multiplying it by an integer constant.
filterFreq :: (a -> Bool) -> Frequency a -> Frequency aSource
Leave only items that satisfy a predicate.
Consumption
rollFreq :: Show a => Frequency a -> StdGen -> (a, StdGen)Source
Randomly choose an item according to the distribution.
runFrequency :: Frequency a -> [(Int, a)]Source
Give acces to raw frequency values.