| Copyright | (c) Hans Hoglund 2012 |
|---|---|
| License | BSD-style |
| Maintainer | hans@hanshoglund.se |
| Stability | stable |
| Portability | non-portable Provides a monoid for calculating arithmetic means. |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Monoid.Average
Description
- newtype Average a = Average {
- getAverage :: [a]
- average :: Fractional a => Average a -> a
- maybeAverage :: Fractional a => Average a -> Maybe a
Documentation
A monoid for Average values.
This is actually just the free monoid with an extra function average for
extracing the (arithmetic) mean. This function is used to implement Real,
so you can use Average whenever a (Monoid, Real) is required.
>>>toRational $ mconcat [1,2::Average Rational]3 % 2>>>toRational $ mconcat [1,2::Sum Rational]3 % 1>>>toRational $ mconcat [1,2::Product Rational]2 % 1
Constructors
| Average | |
Fields
| |
Instances
| Functor Average | |
| Applicative Average | |
| (Fractional a, Eq a) => Eq (Average a) | |
| Floating a => Floating (Average a) | |
| (Fractional a, Num a) => Fractional (Average a) | |
| Num a => Num (Average a) | |
| (Fractional a, Ord a) => Ord (Average a) | |
| (Real a, Fractional a) => Real (Average a) | |
| Show a => Show (Average a) | |
| Monoid (Average a) | |
| Semigroup (Average a) | |
| AffineSpace a => AffineSpace (Average a) | |
| VectorSpace a => VectorSpace (Average a) | |
| AdditiveGroup a => AdditiveGroup (Average a) | |
| Typeable (* -> *) Average | |
| type Diff (Average a) = Average (Diff a) | |
| type Scalar (Average a) = Scalar a |
average :: Fractional a => Average a -> a Source
Return the average of all monoidal components. If given mempty, return zero.
maybeAverage :: Fractional a => Average a -> Maybe a Source