arrows-0.4: Arrow classes and transformersSource codeContentsIndex
Control.Arrow.Transformer.Automaton
Portabilitynon-portable (multi-parameter type classes)
Stabilityexperimental
Maintainerross@soi.city.ac.uk
Description
Simple Mealy-style automata.
Synopsis
newtype Automaton a b c = Automaton (a b (c, Automaton a b c))
runAutomaton :: (ArrowLoop a, ArrowApply a) => Automaton a (e, b) c -> a (e, Stream b) (Stream c)
Documentation
newtype Automaton a b c Source
An arrow type comprising Mealy-style automata, each step of which is is a computation in the original arrow type.
Constructors
Automaton (a b (c, Automaton a b c))
show/hide Instances
runAutomaton :: (ArrowLoop a, ArrowApply a) => Automaton a (e, b) c -> a (e, Stream b) (Stream c)Source

Encapsulating an automaton by running it on a stream of inputs, obtaining a stream of outputs.

Typical usage in arrow notation:

	proc p -> do
		...
		ys <- (|runAutomaton (\x -> ...)|) xs

Here xs refers to the input stream and x to individual elements of that stream. ys is bound to the output stream.

Produced by Haddock version 2.3.0