Yampa-0.9.1.2: Library for programming hybrid systems.Source codeContentsIndex
AFRPUtilities
Portabilitynon-portable (uses GHC extensions)
Stabilityprovisional
Maintainerantony@apocalypse.org
Description

Derived utility definitions.

ToDo: * Possibly add impulse :: VectorSpace a k => a -> Event a But to do that, we need access to Event, which we currently do not have. * The general arrow utilities should be moved to a module AFRPArrowUtilities. * I'm not sure structuring the AFRP core according to what is core functionality and what's not is all that useful. There are many cases where we want to implement combinators that fairly easily could be implemented in terms of others as primitives simply because we expect that that implementation is going to be much more efficient, and that the combinators are used sufficiently often to warrant doing this. E.g. switch should be a primitive, even though it could be derived from pSwitch. * Reconsider recur. If an event source has an immediate occurrence, we'll get into a loop. For example: recur now. Maybe suppress initial occurrences? Initial occurrences are rather pointless in this case anyway.

Documentation
arr2 :: Arrow a => (b -> c -> d) -> a (b, c) dSource
arr3 :: Arrow a => (b -> c -> d -> e) -> a (b, c, d) eSource
arr4 :: Arrow a => (b -> c -> d -> e -> f) -> a (b, c, d, e) fSource
arr5 :: Arrow a => (b -> c -> d -> e -> f -> g) -> a (b, c, d, e, f) gSource
lift0 :: Arrow a => c -> a b cSource
lift1 :: Arrow a => (c -> d) -> a b c -> a b dSource
lift2 :: Arrow a => (c -> d -> e) -> a b c -> a b d -> a b eSource
lift3 :: Arrow a => (c -> d -> e -> f) -> a b c -> a b d -> a b e -> a b fSource
lift4 :: Arrow a => (c -> d -> e -> f -> g) -> a b c -> a b d -> a b e -> a b f -> a b gSource
lift5 :: Arrow a => (c -> d -> e -> f -> g -> h) -> a b c -> a b d -> a b e -> a b f -> a b g -> a b hSource
snap :: SF a (Event a)Source
snapAfter :: Time -> SF a (Event a)Source
sample :: Time -> SF a (Event a)Source
recur :: SF a (Event b) -> SF a (Event b)Source
parZ :: [SF a b] -> SF [a] [b]Source
pSwitchZ :: [SF a b] -> SF ([a], [b]) (Event c) -> ([SF a b] -> c -> SF [a] [b]) -> SF [a] [b]Source
dpSwitchZ :: [SF a b] -> SF ([a], [b]) (Event c) -> ([SF a b] -> c -> SF [a] [b]) -> SF [a] [b]Source
rpSwitchZ :: [SF a b] -> SF ([a], Event ([SF a b] -> [SF a b])) [b]Source
drpSwitchZ :: [SF a b] -> SF ([a], Event ([SF a b] -> [SF a b])) [b]Source
provided :: (a -> Bool) -> SF a b -> SF a b -> SF a bSource
dHold :: a -> SF (Event a) aSource
dTrackAndHold :: a -> SF (Maybe a) aSource
accumHold :: a -> SF (Event (a -> a)) aSource
dAccumHold :: a -> SF (Event (a -> a)) aSource
accumHoldBy :: (b -> a -> b) -> b -> SF (Event a) bSource
dAccumHoldBy :: (b -> a -> b) -> b -> SF (Event a) bSource
count :: Integral b => SF (Event a) (Event b)Source
fby :: b -> SF a b -> SF a bSource
impulseIntegral :: VectorSpace a k => SF (a, Event a) aSource
Produced by Haddock version 2.3.0