[Haskell-cafe] Monads in Scala, XSLT, Unix shell pipes was Re: Monads in ...

Greg Woodhouse gregory.woodhouse at sbcglobal.net
Sat Nov 26 12:25:38 EST 2005

--- Shae Matijs Erisson <shae at ScannedInAvian.com> wrote:

> Geoffrey Alan Washburn <geoffw at cis.upenn.edu> writes:
> There's also Oleg's
> http://okmij.org/ftp/Computation/monadic-shell.html
> "at the level of UNIX programming, all i/o can be regarded monadic."

Interesting. I had been thinking about I/O and operating systems as a
different(?) framework for trying to explain the concept of monads: If
you think about a write statement in an imperative language, it doesn't
actually perform the requested operation, it just asks the OS to
perform the action "later". With respect to pipes, remember that files
are really fictions, too, and when you write to a pipe the data is
stored somewhere (most likely in memory) and then read in lazy fashion.
Maybe this is a different topic, but exploring concurrency in Haskell
is definitely on my "to do" list, but this is really a bit of a puzzle.
One thing I've been thinking lately is that in functional programming
the process is really the wrong abstraction (computation is reduction,
not a sequence of steps performed in temporal order). But what is
concurrency if their are no processes to "run" concurrently? I've beren
thinking about action systems and non-determinism, but am unsure how
the pieces really fit together.

Gregory Woodhouse  <gregory.woodhouse at sbcglobal.net>

"Interaction is the mind-body problem of computing."

--Philip Wadler

More information about the Haskell-Cafe mailing list