Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
19
Task/Stream-merge/Haskell/stream-merge-1.hs
Normal file
19
Task/Stream-merge/Haskell/stream-merge-1.hs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
-- stack runhaskell --package=conduit-extra --package=conduit-merge
|
||||
|
||||
import Control.Monad.Trans.Resource (runResourceT)
|
||||
import qualified Data.ByteString.Char8 as BS
|
||||
import Data.Conduit (($$), (=$=))
|
||||
import Data.Conduit.Binary (sinkHandle, sourceFile)
|
||||
import qualified Data.Conduit.Binary as Conduit
|
||||
import qualified Data.Conduit.List as Conduit
|
||||
import Data.Conduit.Merge (mergeSources)
|
||||
import System.Environment (getArgs)
|
||||
import System.IO (stdout)
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
inputFileNames <- getArgs
|
||||
let inputs = [sourceFile file =$= Conduit.lines | file <- inputFileNames]
|
||||
runResourceT $ mergeSources inputs $$ sinkStdoutLn
|
||||
where
|
||||
sinkStdoutLn = Conduit.map (`BS.snoc` '\n') =$= sinkHandle stdout
|
||||
15
Task/Stream-merge/Haskell/stream-merge-2.hs
Normal file
15
Task/Stream-merge/Haskell/stream-merge-2.hs
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
-- stack runhaskell --package=pipes-safe --package=pipes-interleave
|
||||
|
||||
import Pipes (runEffect, (>->))
|
||||
import Pipes.Interleave (interleave)
|
||||
import Pipes.Prelude (stdoutLn)
|
||||
import Pipes.Safe (runSafeT)
|
||||
import Pipes.Safe.Prelude (readFile)
|
||||
import Prelude hiding (readFile)
|
||||
import System.Environment (getArgs)
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
sourceFileNames <- getArgs
|
||||
let sources = map readFile sourceFileNames
|
||||
runSafeT . runEffect $ interleave compare sources >-> stdoutLn
|
||||
Loading…
Add table
Add a link
Reference in a new issue