On Dec 11, 2009, at 1:01 AM, John D. Earle wrote:
This is a matter that I genuinely at the present time do not grasp
and I am hoping that some of you who are more familiar with the
Haskell language may be able to help enlighten me. I feel the
question to be an important one. What material benefit does Haskell
derive from being a "pure" functional language as opposed to an
impure one? Please provide examples as I require instruction.
It sounds as though you think the Haskell designers wanted a language
some other reason, then cast around and said "what kind of language
be?" and decided to make it a pure lazy functional one.
It's the other way around. The programming language world was full of
people trying all sorts of things. It so happened that several groups
were exploring techniques for implementing pure lazy functional
In a fit of sanity that gives one hope for humanity, they said "why
we all work on a *common* language?"
The big outsider was Clean, which, however, adopted quite a lot of
from Haskell, and now has or is aquiring a Haskell98 front end. (It was
already close enough to Haskell that the biggest pain in converting was
that 'if' is just a plain function in Clean, not special syntax.)
The question to ask, then, is "what material benefit did the pure lazy
functional language community get from adopting a common language".
Here's one hint: there are several Haskell implementations, numerous
Haskell books, and a bulging library of reusable Haskell code. There's
basically one out of date Clean book and an unfinished one available on
As for why anyone should care about pure functional languages,
read "Why Functional Programming Matters".
Oddly enough, the W3C language for transforming XML (XSLT) is a pure
functional language, and so is the C++ type system.
The sort of decision that Apple computer and Microsoft made not to
go down the POSIX road seems relevant.
(1) When the Mac was designed, POSIX did not exist. They _couldn't_
go down the POSIX road.
(2) Apple computer *did* go down the POSIX road, or very nearly.
MacOS X is as good a UNIX as ever came down the street. It's also
a lot *more* than POSIX, but I routinely expect to have no more
trouble moving code from say Solaris to MacOS than to Linux;
(3) Since the release of Windows NT, Microsoft *have* gone down the
road. I have Microsoft's "Services for Unix Applications"
on a laptop. What Microsoft don't seem to be very interested in is
going down the C99 road. Like Mac OS X, Windows is a lot *more*
I suggest that one reason for functional language implementation
researchers to concentrate on a *pure* functional language is to keep
themselves honest: whenever a performance problem comes up it's no
good saying "oh we'll do this the old fashioned imperative way" (as
SML and O'Caml do), they have to find a way to do it well
Haskell-Cafe mailing list