on 3bb7ff1 help sign in
streamly/src/Streamly/Examples/SearchEngineQuery.hs
21 lines 811 B history raw
1module Streamly.Examples.SearchEngineQuery where
3import Streamly
4import Network.HTTP.Simple
6-- Runs three search engine queries in parallel.
7searchEngineQuery :: IO ()
8searchEngineQuery = do
9 putStrLn "Using parallel alternative"
10 runStream . parallely $ google <> bing <> duckduckgo
12 putStrLn "\nUsing parallel applicative zip"
13 runStream . zippingAsync $ (,,) <$> google <*> bing <*> duckduckgo
15 where
16 get :: IsStream t => String -> t IO ()
17 google, bing, duckduckgo :: IsStream t => t IO ()
18 get s = serially $ liftIO (httpNoBody (parseRequest_ s) >> putStrLn (show s))
19 google = get "https://www.google.com/search?q=haskell"
20 bing = get "https://www.bing.com/search?q=haskell"
21 duckduckgo = get "https://www.duckduckgo.com/?q=haskell"