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