Jeremy Shaw wrote:
At Thu, 11 May 2006 23:05:14 +0100,
Brian Hulley wrote:

Of course the above could no doubt be improved but surely it is
already far easier to understand and much more powerful than the
idiosyncratic text based approach used in UNIX shells (including rc).

The idea of representing unix pipes as monads has been around for a
while -- but what most people fail to account for is that many (most?)
real-world shell scripts also need to deal with return values and
stderr. Even standard unix shells are pretty terrible in this regard
-- so if we could do it *better* than standard shells -- that could be
pretty compelling.
[snip lots of examples and other interesting points]

Some other possibilities are:

1) Every command returns a pair consisting of result and return code

2) Use exceptions instead of stderr

3) Use a more complicated monad

It may still be a good idea to take the top 20 unix utils and code
them as native haskell functions and see how far that goes. I know
there are some existing libraries that deal with basic stuff like mv,
etc. Has anyone implemented grep, find, etc?

This is also how I would start because it would allow all the control flow/ ease of use issues to be explored just using GHCi / Hugs etc before tackling the problem of how to get binaries to interface with the shell.

Regards, Brian.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to