@hackage mealy0.5.1.1
Mealy machines for processing time-series and ordered data.
Installation
Tested Compilers
Dependencies (13)
- adjunctions >=4.0 && <4.5
- base >=4.14 && <5
- containers >=0.6 && <0.9
- harpie >=0.1 && <0.3
- harpie-numhask >=0.1 && <0.3
- mwc-probability >=2.3.1 && <2.4 Show all…
Dependents (3)
@hackage/ephemeral, @hackage/chart-svg-various, @hackage/prettychart
mealy
A 'Mealy' is a triple of functions
- (a -> b) inject: Convert (initial) input into the (initial) state type.
- (b -> a -> b) step: Update state given prior state and (new) input.
- (c -> b) extract: Convert state to the output type.
A sum, for example, looks like M id (+) id where the first id is the initial injection and the second id is the covariant extraction.
This library provides support for computing statistics (such as an average or a standard deviation) as current state within a mealy context.
Usage
Usage is to supply a decay function representing the relative weights of recent values versus older ones, in the manner of exponentially-weighted averages. The library attempts to be polymorphic in the statistic which can be combined in applicative style.
import Prelude
import Data.Mealy
fold ((,) <$> ma 0.9 <*> std 0.9) [1..100::Double]
(91.00265621044142,9.472822805289121)