Safe Haskell | None |
---|
Contains utility functions for working with signals and signal generators.
- constant :: a -> SignalGen (Signal a)
- lift :: (a -> b) -> SignalGen (Signal a) -> SignalGen (Signal b)
- lift2 :: (a -> b -> c) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c)
- lift3 :: (a -> b -> c -> d) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c) -> SignalGen (Signal d)
- (<~) :: (a -> b) -> SignalGen (Signal a) -> SignalGen (Signal b)
- (~~) :: SignalGen (Signal (a -> b)) -> SignalGen (Signal a) -> SignalGen (Signal b)
- foldp :: (a -> b -> b) -> b -> SignalGen (Signal a) -> SignalGen (Signal b)
- count :: SignalGen (Signal Int)
- countIf :: (a -> Bool) -> SignalGen (Signal a) -> SignalGen (Signal Int)
- lift4 :: (a -> b -> c -> d -> e) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c) -> SignalGen (Signal d) -> SignalGen (Signal e)
- lift5 :: (a -> b -> c -> d -> e -> f) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c) -> SignalGen (Signal d) -> SignalGen (Signal e) -> SignalGen (Signal f)
- lift6 :: (a -> b -> c -> d -> e -> f -> g) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c) -> SignalGen (Signal d) -> SignalGen (Signal e) -> SignalGen (Signal f) -> SignalGen (Signal g)
- lift7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c) -> SignalGen (Signal d) -> SignalGen (Signal e) -> SignalGen (Signal f) -> SignalGen (Signal g) -> SignalGen (Signal h)
- lift8 :: (a -> b -> c -> d -> e -> f -> g -> h -> i) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c) -> SignalGen (Signal d) -> SignalGen (Signal e) -> SignalGen (Signal f) -> SignalGen (Signal g) -> SignalGen (Signal h) -> SignalGen (Signal i)
Composing
lift :: (a -> b) -> SignalGen (Signal a) -> SignalGen (Signal b)Source
Applies a function to a signal producing a new signal. This is a wrapper around the builtin
fmap
function that automatically binds the input signal out of the signal generator.
render <~ Window.dimensions
lift2 :: (a -> b -> c) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c)Source
Applies a function to two signals.
lift3 :: (a -> b -> c -> d) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c) -> SignalGen (Signal d)Source
Applies a function to three signals.
(~~) :: SignalGen (Signal (a -> b)) -> SignalGen (Signal a) -> SignalGen (Signal b)Source
Applies a function within a signal to a signal. This is a wrapper around the builtin <*>
operator
that automatically binds the input signal out of the signal generator.
render <~ Window.dimensions ~~ Window.position
Accumulating
foldp :: (a -> b -> b) -> b -> SignalGen (Signal a) -> SignalGen (Signal b)Source
Creates a past-dependent signal that depends on another signal. This is a
wrapper around the transfer
function that automatically binds the input
signal out of the signal generator. This function is useful for making a render
function that depends on some accumulated state.
count :: SignalGen (Signal Int)Source
Creates a signal that counts the amount of times it has been sampled.
countIf :: (a -> Bool) -> SignalGen (Signal a) -> SignalGen (Signal Int)Source
Creates a signal that counts the amount of times an input signal has passed a predicate when sampled.
DYEL?
lift4 :: (a -> b -> c -> d -> e) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c) -> SignalGen (Signal d) -> SignalGen (Signal e)Source
Applies a function to four signals.
lift5 :: (a -> b -> c -> d -> e -> f) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c) -> SignalGen (Signal d) -> SignalGen (Signal e) -> SignalGen (Signal f)Source
Applies a function to five signals.
lift6 :: (a -> b -> c -> d -> e -> f -> g) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c) -> SignalGen (Signal d) -> SignalGen (Signal e) -> SignalGen (Signal f) -> SignalGen (Signal g)Source
Applies a function to six signals.
lift7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c) -> SignalGen (Signal d) -> SignalGen (Signal e) -> SignalGen (Signal f) -> SignalGen (Signal g) -> SignalGen (Signal h)Source
Applies a function to seven signals.
lift8 :: (a -> b -> c -> d -> e -> f -> g -> h -> i) -> SignalGen (Signal a) -> SignalGen (Signal b) -> SignalGen (Signal c) -> SignalGen (Signal d) -> SignalGen (Signal e) -> SignalGen (Signal f) -> SignalGen (Signal g) -> SignalGen (Signal h) -> SignalGen (Signal i)Source
Applies a function to eight signals.