Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Signal a
- constant :: a -> Signal a
- merge :: Signal a -> Signal a -> Signal a
- mergeMany :: (Functor f, Foldable f) => f (Signal a) -> Maybe (Signal a)
- foldp :: (a -> b -> b) -> b -> Signal a -> Signal b
- sampleOn :: Signal a -> Signal b -> Signal b
- dropRepeats :: Eq a => Signal a -> Signal a
- runSignal :: Signal (IO ()) -> IO ()
- filter :: (a -> Bool) -> a -> Signal a -> Signal a
- filterMap :: (a -> Maybe b) -> b -> Signal a -> Signal b
- (~>) :: Signal a -> (a -> b) -> Signal b
- (<~) :: (a -> b) -> Signal a -> Signal b
- (~~) :: Signal (a -> b) -> Signal a -> Signal b
- map2 :: (a -> b -> c) -> Signal a -> Signal b -> Signal c
- map3 :: (a -> b -> c -> d) -> Signal a -> Signal b -> Signal c -> Signal d
- map4 :: (a -> b -> c -> d -> e) -> Signal a -> Signal b -> Signal c -> Signal d -> Signal e
- map5 :: (a -> b -> c -> d -> e -> f) -> Signal a -> Signal b -> Signal c -> Signal d -> Signal e -> Signal f
Documentation
merge :: Signal a -> Signal a -> Signal a #
Merge two signals, returning a new signal which will yield a value |whenever either of the input signals yield. Its initial value will be |that of the first signal.
foldp :: (a -> b -> b) -> b -> Signal a -> Signal b #
Creates a past dependent signal. The function argument takes the value of |the input signal, and the previous value of the output signal, to produce |the new value of the output signal.
sampleOn :: Signal a -> Signal b -> Signal b #
Creates a signal which yields the current value of the second signal every |time the first signal yields.
dropRepeats :: Eq a => Signal a -> Signal a #
Create a signal which only yields values which aren't equal to the previous |value of the input signal.
runSignal :: Signal (IO ()) -> IO () #
Given a signal of effects with no return value, run each effect as it |comes in.
filter :: (a -> Bool) -> a -> Signal a -> Signal a #
Takes a signal and filters out yielded values for which the provided
|predicate function returns false
.
(~~) :: Signal (a -> b) -> Signal a -> Signal b infixl 4 #
Signal application. | Note that it is a double tilde, differing from | purescript-signal, as a single tilde is used | in Haskell for lazy evaluation.
map5 :: (a -> b -> c -> d -> e -> f) -> Signal a -> Signal b -> Signal c -> Signal d -> Signal e -> Signal f #