[Haskell-cafe] Process properties as global values

David Menendez zednenem at psualum.com
Sun Jul 4 15:57:55 EDT 2004

Alastair Reid writes:

> > I'm just wondering, why haven't process properties (such as the
> > command line arguments, or the parent process id), which are
> > inherently global, been made global values in the Haskell standard?
> > You could avoid needlessly carrying around these values, you
> > wouldn't need to lift some functions into the IO monad...
> This is true and you don't break purity and common programming tasks
> become a bit easier because you need less plumbing.  One argument
> against doing so is that it will make data dependencies less obvious.

To reinforce that point: Command-line arguments and environment
variables are specific to a certain type of platform. There have been
popular consumer operating systems (the "classic" Mac OS, to name one)
that have no analogous features.

Keeping the implementation-specific features locked in the IO monad may
not be the ideal solution, but it's better than having them scattered
throughout the program.
David Menendez <zednenem at psualum.com> <http://www.eyrie.org/~zednenem/>

More information about the Haskell-Cafe mailing list