You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Peter J. Jones 402c023744 Style changes so the code fits on slides for a presentation 5 jaren geleden
src Style changes so the code fits on slides for a presentation 5 jaren geleden
util @ 36a98650ac Clean a few things up, implement reading from STDIN or several files 5 jaren geleden
.gitignore Bring in the haskell-util submodule 5 jaren geleden
.gitmodules Bring in the haskell-util submodule 5 jaren geleden
GNUmakefile Bring in the haskell-util submodule 5 jaren geleden
LICENSE Initial commit 5 jaren geleden
README.md Add basic README file 5 jaren geleden
Setup.hs Initial commit 5 jaren geleden
wc-streams.cabal Clean a few things up, implement reading from STDIN or several files 5 jaren geleden

README.md

Haskell / io-streams Implementation of wc

This repository contains an implementation of the POSIX wc utility written in Haskell using the io-streams library. It was written to demonstrate the io-streams library for the Boulder Haskell Programmers user group.

The Basics of the io-streams Library

The io-streams library allows you to write stream processing code that runs in constant space. It’s a streaming library similar to Conduit and Pipes but with significantly fewer features.

Basic features:

  • Values are read from an InputStream
  • InputStreams produce a Maybe a; Nothing means EOF
  • Values are written to an OutputStream
  • OutputStreams accept a Maybe a
  • Streams can be files, sockets, vectors, parsers, etc.

Pros and Cons

  • io-streams is great because…

    • It’s really easy to learn and use
    • Stream processing is very fast
    • It’s easy to compose stream functions together
  • io-streams is less desirable because…

    • It makes heavy use of the IO type
    • Limited functionality compared to Conduit and Pipes