module ForSyDe.Shallow.MoC.Adaptivity (
applyfSY, applyf2SY, applyf3SY,
applyfU
) where
import ForSyDe.Shallow.Core.Signal
import ForSyDe.Shallow.MoC.Synchronous.Lib
import ForSyDe.Shallow.MoC.Untimed
applyfSY :: Signal (a -> b) -> Signal a -> Signal b
applyfSY :: Signal (a -> b) -> Signal a -> Signal b
applyfSY = ((a -> b) -> a -> b) -> Signal (a -> b) -> Signal a -> Signal b
forall a b c. (a -> b -> c) -> Signal a -> Signal b -> Signal c
zipWithSY (a -> b) -> a -> b
forall a b. (a -> b) -> a -> b
($)
applyf2SY :: Signal (a -> c -> d)
-> Signal a -> Signal c -> Signal d
applyf2SY :: Signal (a -> c -> d) -> Signal a -> Signal c -> Signal d
applyf2SY = ((a -> c -> d) -> a -> c -> d)
-> Signal (a -> c -> d) -> Signal a -> Signal c -> Signal d
forall a b c d.
(a -> b -> c -> d) -> Signal a -> Signal b -> Signal c -> Signal d
zipWith3SY (a -> c -> d) -> a -> c -> d
forall a b. (a -> b) -> a -> b
($)
applyf3SY :: Signal (a -> c -> d -> e)
-> Signal a -> Signal c -> Signal d -> Signal e
applyf3SY :: Signal (a -> c -> d -> e)
-> Signal a -> Signal c -> Signal d -> Signal e
applyf3SY = ((a -> c -> d -> e) -> a -> c -> d -> e)
-> Signal (a -> c -> d -> e)
-> Signal a
-> Signal c
-> Signal d
-> Signal e
forall a b c d e.
(a -> b -> c -> d -> e)
-> Signal a -> Signal b -> Signal c -> Signal d -> Signal e
zipWith4SY (a -> c -> d -> e) -> a -> c -> d -> e
forall a b. (a -> b) -> a -> b
($)
applyfU :: Int -> Signal ([a] -> [b]) -> Signal a -> Signal b
applyfU :: Int -> Signal ([a] -> [b]) -> Signal a -> Signal b
applyfU Int
tokenNum = Int
-> (([a] -> [b]) -> [a] -> [b])
-> Signal ([a] -> [b])
-> Signal a
-> Signal b
forall a b c.
Int -> (a -> [b] -> [c]) -> Signal a -> Signal b -> Signal c
comb2UC Int
tokenNum ([a] -> [b]) -> [a] -> [b]
forall p. p -> p
apply
where apply :: p -> p
apply p
f = p
f