[Haskell-cafe] [Haskell] Branch Streaming (was GHC is a monopoly compiler)

Tony Day tonyday567 at gmail.com
Wed Sep 28 22:09:42 UTC 2016

A lot of the Pipes trickery is making a branch without the abstraction of
state.  It's easy to remember the last stream value and send it elsewhere.
If state is easy (doesn't stuff up streaming), then Moore and Mealy are
good places to start tinkering.  The whole machines abstraction (branch of
DFA etc, not the kmett library) is a bit clunky but.  A Mealy machine's
output is independent of its input - it can fire anytime, not just when a
new stream value arrives.  If you have a linear pull request line, like
pipes does so well, there is full coupling of the input and output - this
is a Moore not a Mealy machine.  The stream machine is created by linking
up all the states of a Moore and making them fire every stream value.
Contrary to much of the DFA narrative, we have a wire hanging out of state
as well.  The importance of distinguishing between a wire connected to
state and what is an output wire that exists within state machines seems a
touch artificial.

On Thu, Sep 29, 2016 at 7:23 AM, Alan & Kim Zimmerman <alan.zimm at gmail.com>

> For flavour, the computation involves hoisting and lifting back and forth
>> over several layers, as the various meta-physical wires cross.  That was
>> years ago, but I haven't seen anything since.  It looks like Pipes is the
>> wrong abstraction point to stream with branching.  I wonder what is?
>> Machines? https://hackage.haskell.org/package/machines
> Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160929/46bd1e3d/attachment-0001.html>

More information about the Haskell-Cafe mailing list