Safe Haskell | None |
---|
Contains miscellaneous utility functions such as functions for working with signals and signal generators.
- radians :: Double -> Double
- degrees :: Double -> Double
- turns :: Double -> Double
- (<|) :: (a -> b) -> a -> b
- (|>) :: a -> (a -> b) -> b
- random :: Random a => SignalGen (Signal a)
- randomR :: Random a => (a, a) -> SignalGen (Signal a)
- constant :: a -> SignalGen (Signal a)
- combine :: [SignalGen (Signal 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)
Angles
turns :: Double -> DoubleSource
Converts turns into the standard angle measurement (radians). Turns are essentially full revolutions of the unit circle.
Applying
(<|) :: (a -> b) -> a -> bSource
Exactly the same as '($)', only there to make code using '(|>)' more consistent.
(|>) :: a -> (a -> b) -> bSource
Forward function application, think of it as a inverted '($)'. Provided for easy porting from Elm.
Random numbers
randomR :: Random a => (a, a) -> SignalGen (Signal a)Source
Creates a signal of a random number based on the given range.
Composing
combine :: [SignalGen (Signal a)] -> SignalGen (Signal [a])Source
Combines a list of signals into a signal of lists.
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.