[Haskell-beginners] More simple continuation questions - pipe analogy

John Wiegley johnw at newartisans.com
Fri Jul 18 00:11:12 UTC 2014


>>>>> martin  <martin.drautzburg at web.de> writes:

> A pipeline is a fixed set of functions, whereas with CPS I can say: if the
> value received is this, then continue this way, otherwise continue that
> way. With a simple pipeline I would have to put all these cases into the
> function which makes this decision and even pass the decision on to the next
> function in the pipeline so it know how we got there. Is this about right?

It's not only about right, I've implemented the concept here:

  http://hackage.haskell.org/package/simple-conduit

This uses a short-circuiting continuation data type underneath:

  newtype Source m a = Source (forall r. Cont (r -> EitherT r m r) a)

And then provides you with the capability to build Unix-style pipelines in
order to keep memory use constant, and to ensure that all resources are freed
when the pipeline finishes, or if it should short-circuit or fail.

I have to look into why the Haddocks are failing to build, but they will build
for you locally.

John


More information about the Beginners mailing list