Yampa-0.9.2.1: Library for programming hybrid systems.Source codeContentsIndex
FRP.Yampa.Utilities
Portabilityportable
Stabilityprovisional
Maintainernilsson@cs.yale.edu
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 FRP.Yampa.Utilities.
  • I'm not sure structuring the Yampa "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
andThen :: SF a (Event b) -> SF a (Event b) -> SF a (Event b)Source
sampleWindow :: Int -> Time -> SF a (Event [a])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
old_dHold :: a -> SF (Event a) aSource
dTrackAndHold :: a -> SF (Maybe a) aSource
old_accumHold :: a -> SF (Event (a -> a)) aSource
old_dAccumHold :: a -> SF (Event (a -> a)) aSource
old_accumHoldBy :: (b -> a -> b) -> b -> SF (Event a) bSource
old_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
old_impulseIntegral :: VectorSpace a k => SF (a, Event a) aSource
Produced by Haddock version 2.3.0