helm-0.4: A functionally reactive game engine.

Safe HaskellNone

FRP.Helm.Signal

Contents

Description

Contains utility functions for working with signals and signal generators.

Synopsis

Composing

constant :: a -> SignalGen (Signal a)Source

Creates a signal that never changes.

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.

(<~) :: (a -> b) -> SignalGen (Signal a) -> SignalGen (Signal b)Source

An alias for lift.

(~~) :: 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.