Portability | portable |
---|---|
Stability | experimental |
Maintainer | forsyde-dev@ict.kth.se |
This module defines the shallow-embedded Signal
datatype and
functions operating on it.
- data Signal a
- (-:) :: Signal a -> a -> Signal a
- (+-+) :: Signal a -> Signal a -> Signal a
- (!-) :: Signal a -> Int -> a
- signal :: [a] -> Signal a
- fromSignal :: Signal a -> [a]
- unitS :: a -> Signal a
- nullS :: Signal a -> Bool
- headS :: Signal a -> a
- tailS :: Signal a -> Signal a
- atS :: Int -> Signal a -> a
- takeS :: Int -> Signal a -> Signal a
- dropS :: Int -> Signal a -> Signal a
- lengthS :: Signal b -> Int
- infiniteS :: (a -> a) -> a -> Signal a
- copyS :: Num a => a -> b -> Signal b
- selectS :: Int -> Int -> Signal a -> Signal a
- writeS :: Show a => Signal a -> [Char]
- readS :: Read a => [Char] -> Signal a
- fanS :: (Signal a -> Signal b) -> (Signal a -> Signal c) -> Signal a -> (Signal b, Signal c)
Documentation
(+-+) :: Signal a -> Signal a -> Signal aSource
The operator +-+
concatinates two signals into one signal.
fromSignal :: Signal a -> [a]Source
The function fromSignal
converts a signal into a list.
atS :: Int -> Signal a -> aSource
The function atS
returns the n-th event in a signal. The numbering of events in a signal starts with 0. There is also an operator version of this function, '(!-)'.
takeS :: Int -> Signal a -> Signal aSource
The function takeS
returns the first n values of a signal.
dropS :: Int -> Signal a -> Signal aSource
The function dropS
drops the first $n$ values from a signal.
infiniteS :: (a -> a) -> a -> Signal aSource
The function infiniteS
creates an infinite signal. The first argument f
is a function that is applied on the current value. The second argument x
gives the first value of the signal.
Signal> takeS 5 (infiniteS (*3) 1) {1,3,9,27,81} :: Signal Integer
selectS :: Int -> Int -> Signal a -> Signal aSource
The function selectS
takes three parameters, an offset, a stepsize and a signal and returns some elements of the signal such as in the following example:
Signal> selectS 2 3 (signal[1,2,3,4,5,6,7,8,9,10]) {3,6,9} :: Signal Integer
writeS :: Show a => Signal a -> [Char]Source
The function writeS
transforms a signal into a string of the following format:
Signal> writeS (signal[1,2,3,4,5]) 1n2n3n4n5n :: [Char]