File tree Expand file tree Collapse file tree 4 files changed +14
-14
lines changed
Expand file tree Collapse file tree 4 files changed +14
-14
lines changed Original file line number Diff line number Diff line change @@ -42,7 +42,7 @@ create = do
4242 pure do
4343 Ref .write true unsubscribing
4444 Ref .modify_ (Array .deleteBy unsafeRefEq subscriber) subscribers
45- pure { event, push: ( queue.push <<< pure) , cancel: queue.kill }
45+ pure { event, push: queue.push, cancel: queue.kill }
4646
4747makeEvent :: forall a . (Subscriber a -> Effect Canceller ) -> Event a
4848makeEvent = Event
@@ -145,7 +145,7 @@ instance functorEvent :: Functor Event where
145145 map f (Event event) =
146146 Event \emit -> do
147147 queue <- Queue .create (emit <<< f)
148- cancel <- event ( queue.push <<< pure)
148+ cancel <- event queue.push
149149 pure do
150150 cancel
151151 queue.kill
Original file line number Diff line number Diff line change @@ -4,18 +4,16 @@ import Prelude
44import Control.Monad.Rec.Class (forever )
55import Effect (Effect )
66import Effect.AVar as AVar
7- import Effect.Aff (Aff )
87import Effect.Aff as Aff
98import Effect.Aff.AVar as AffVar
109import Effect.Class (liftEffect )
1110
12- create :: forall a b . (a -> Effect b ) -> Effect { push :: Aff a -> Effect Unit , kill :: Effect Unit }
11+ create :: forall a b . (a -> Effect b ) -> Effect { push :: a -> Effect Unit , kill :: Effect Unit }
1312create consumer = do
1413 queue <- AVar .empty
1514 fiber <-
1615 (Aff .launchAff <<< forever) do
17- aff <- AffVar .take queue
18- a <- aff
16+ a <- AffVar .take queue
1917 liftEffect do consumer a
2018 let
2119 killFiber = Aff .launchAff_ do Aff .killFiber (Aff .error " killing queue consumer" ) fiber
Original file line number Diff line number Diff line change @@ -16,7 +16,11 @@ delay offset event = do
1616 ms = fromDuration offset
1717 Event .makeEvent \emit -> do
1818 queue <- Queue .create emit
19- cancel <- Event .subscribe event \a -> queue.push do Aff .delay ms *> pure a
19+ cancel <-
20+ Event .subscribe event \a ->
21+ Aff .launchAff_ do
22+ Aff .delay ms
23+ liftEffect do queue.push a
2024 pure do
2125 cancel
2226 queue.kill
Original file line number Diff line number Diff line change 11module Test.Main where
22
33import Prelude
4- import Control.Alt ((<|>))
54import Data.Array as Array
65import Data.FoldableWithIndex (foldlWithIndex )
76import Data.Int as Int
8- import Data.List.Lazy (range )
97import Data.String.CodeUnits as CodeUnits
108import Effect (Effect )
119import Effect.Class.Console as Console
@@ -14,13 +12,13 @@ import Wire.Event as Event
1412
1513main :: Effect Unit
1614main = do
17- void $ Event .subscribe (Event .distinct (sumFromOneToOneHundred <|> sumFromOneToOneHundred) >>= pure <<< formatNumber <<< show) do Console .log
15+ void $ Event .subscribe ((\a b -> " Hi " <> show (a + b)) <$> Event .range 1 5 <*> ( Event .range 6 10 >>= pure)) do Console .logShow
1816
19- sumFromOneToOneHundred :: Event Number
20- sumFromOneToOneHundred =
21- range 1 100
22- # Event .fromFoldable
17+ sumOfSquaresFromOneToOneThousand :: Event Number
18+ sumOfSquaresFromOneToOneThousand =
19+ Event .range 1 1_000
2320 # map Int .toNumber
21+ # map (\x -> x * x)
2422 # Event .fold (+) 0.0
2523
2624formatNumber :: String -> String
You can’t perform that action at this time.
0 commit comments