--- Shae Matijs Erisson <[EMAIL PROTECTED]> wrote: > Geoffrey Alan Washburn <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> "Interaction is the mind-body problem of computing." --Philip Wadler _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe