Created
July 12, 2016 09:37
-
-
Save agocorona/a72eba8bddbe7894e19076261000a886 to your computer and use it in GitHub Desktop.
Simple Haskell IRC client in "two lines of code"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Transient.Base | |
import Network | |
import System.IO | |
import Control.Monad.IO.Class | |
import Control.Applicative | |
-- taken from Pipes example | |
-- https://www.reddit.com/r/haskell/comments/2jvc78/simple_haskell_irc_client_in_two_lines_of_code/?st=iqj5yxg1&sh=0cb8cc11 | |
-- Simple Haskell IRC client in "two lines of code" | |
-- | |
--main = withSocketsDo $ connect "irc.freenode.net" "6667" $ \(s, _) -> | |
-- forkIO (runEffect $ PBS.stdin >-> toSocket s) >> runEffect (fromSocket s 4096 >-> PBS.stdout) | |
main = do | |
h <- withSocketsDo $ connectTo "irc.freenode.net" $ PortNumber $ fromIntegral 6667 | |
keep' $ (waitEvents getLine >>= liftIO . hPutStrLn h) <|> (waitEvents (hGetLine h) >>= liftIO . putStrLn ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Factorization of the second line: