bearriver-0.14.7: FRP Yampa replacement implemented with Monadic Stream Functions.
Copyright(c) Ivan Perez 2014-2023
(c) George Giorgidze 2007-2012
(c) Henrik Nilsson 2005-2006
(c) Antony Courtney and Henrik Nilsson Yale University 2003-2004
LicenseBSD-style (see the LICENSE file in the distribution)
Maintainerivan.perez@keera.co.uk
Stabilityprovisional
Portabilitynon-portable (GHC extensions)
Safe HaskellSafe-Inferred
LanguageHaskell2010

FRP.BearRiver.Scan

Description

Simple, stateful signal processing.

Scanning implements elementary, step-based accumulating over signal functions by means of an auxiliary function applied to each input and to an accumulator. For comparison with other FRP libraries and with stream processing abstractions, think of fold.

Synopsis

Documentation

sscan :: Monad m => (b -> a -> b) -> b -> SF m a b Source #

Applies a function point-wise, using the last output as next input. This creates a well-formed loop based on a pure, auxiliary function.

sscanPrim :: Monad m => (c -> a -> Maybe (c, b)) -> c -> b -> SF m a b Source #

Generic version of sscan, in which the auxiliary function produces an internal accumulator and an "held" output.

Applies a function point-wise, using the last known Just output to form the output, and next input accumulator. If the output is Nothing, the last known accumulators are used. This creates a well-formed loop based on a pure, auxiliary function.