[Haskell-beginners] Issue installing reactive-banana-5.0.0.1
Heinrich Apfelmus
apfelmus at quantentunnel.de
Sat May 5 09:40:46 CEST 2012
Miguel Negrao wrote:
>
> One other question, is it possible in reactive-banana to define
> “recursive” event streams. For instance consider a stream which
> receives numbers between 0.0 and 1.0. If the last outputted value
> was between 0.8 an 1.0 then output 1-x otherwise output x. After that
> it only leta numbers through if they are between 0.0 and 0.2 or
> between 0.8 and 1.0.
The standard way to do recursion in reactive-banana is to use multiple
recursion between a Behavior and an Event . See also
http://stackoverflow.com/a/7852344/403805
Note that the specification you gave does not require recursion, though.
Here an implementation of your example.
import Reactive.Banana
example :: Event t Double -> Event t Double
example e = filterJust e2
where
e2 = f <$> bIsFirst <@> e
bIsFirst = stepper True $ False <$ e
between x a b = a < x && x < b
f True x
| between x 0.8 1.0 = Just $ 1 - x
| otherwise = Just $ x
f False x
| between x 0.8 1.0 = Just $ x
| between x 0.0 0.2 = Just $ x
| otherwise = Nothing
Here an example output
GHCi> interpretModel example [[0.9],[0.3],[0.4]]
[[9.999999999999998e-2],[],[]]
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
More information about the Beginners
mailing list