Copyright | (c) Antony Courtney and Henrik Nilsson, Yale University, 2003 |
---|---|
License | BSD-style (see the LICENSE file in the distribution) |
Maintainer | nilsson@cs.yale.edu |
Stability | provisional |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
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 frompSwitch
. - 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.
- (^>>) :: Arrow a => (b -> c) -> a c d -> a b d
- (>>^) :: Arrow a => a b c -> (c -> d) -> a b d
- (^<<) :: Arrow a => (c -> d) -> a b c -> a b d
- (<<^) :: Arrow a => a c d -> (b -> c) -> a b d
- arr2 :: Arrow a => (b -> c -> d) -> a (b, c) d
- arr3 :: Arrow a => (b -> c -> d -> e) -> a (b, c, d) e
- arr4 :: Arrow a => (b -> c -> d -> e -> f) -> a (b, c, d, e) f
- arr5 :: Arrow a => (b -> c -> d -> e -> f -> g) -> a (b, c, d, e, f) g
- lift0 :: Arrow a => c -> a b c
- lift1 :: Arrow a => (c -> d) -> a b c -> a b d
- lift2 :: Arrow a => (c -> d -> e) -> a b c -> a b d -> a b e
- lift3 :: Arrow a => (c -> d -> e -> f) -> a b c -> a b d -> a b e -> a b f
- lift4 :: Arrow a => (c -> d -> e -> f -> g) -> a b c -> a b d -> a b e -> a b f -> a b g
- 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 h
- snap :: SF a (Event a)
- snapAfter :: Time -> SF a (Event a)
- sample :: Time -> SF a (Event a)
- recur :: SF a (Event b) -> SF a (Event b)
- andThen :: SF a (Event b) -> SF a (Event b) -> SF a (Event b)
- sampleWindow :: Int -> Time -> SF a (Event [a])
- parZ :: [SF a b] -> SF [a] [b]
- pSwitchZ :: [SF a b] -> SF ([a], [b]) (Event c) -> ([SF a b] -> c -> SF [a] [b]) -> SF [a] [b]
- dpSwitchZ :: [SF a b] -> SF ([a], [b]) (Event c) -> ([SF a b] -> c -> SF [a] [b]) -> SF [a] [b]
- rpSwitchZ :: [SF a b] -> SF ([a], Event ([SF a b] -> [SF a b])) [b]
- drpSwitchZ :: [SF a b] -> SF ([a], Event ([SF a b] -> [SF a b])) [b]
- provided :: (a -> Bool) -> SF a b -> SF a b -> SF a b
- old_dHold :: a -> SF (Event a) a
- dTrackAndHold :: a -> SF (Maybe a) a
- old_accumHold :: a -> SF (Event (a -> a)) a
- old_dAccumHold :: a -> SF (Event (a -> a)) a
- old_accumHoldBy :: (b -> a -> b) -> b -> SF (Event a) b
- old_dAccumHoldBy :: (b -> a -> b) -> b -> SF (Event a) b
- count :: Integral b => SF (Event a) (Event b)
- fby :: b -> SF a b -> SF a b
- impulseIntegral :: VectorSpace a k => SF (a, Event a) a
- old_impulseIntegral :: VectorSpace a k => SF (a, Event a) a
Documentation
(^<<) :: Arrow a => (c -> d) -> a b c -> a b d infixr 1
Postcomposition with a pure function (right-to-left variant).
(<<^) :: Arrow a => a c d -> (b -> c) -> a b d infixr 1
Precomposition with a pure function (right-to-left variant).
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 h 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
dTrackAndHold :: a -> SF (Maybe a) a Source
old_accumHold :: a -> SF (Event (a -> a)) a Source
old_dAccumHold :: a -> SF (Event (a -> a)) a Source
old_accumHoldBy :: (b -> a -> b) -> b -> SF (Event a) b Source
old_dAccumHoldBy :: (b -> a -> b) -> b -> SF (Event a) b Source
impulseIntegral :: VectorSpace a k => SF (a, Event a) a Source
old_impulseIntegral :: VectorSpace a k => SF (a, Event a) a Source