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 for some other reason, then cast around and said "what kind of language will it
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 languages. In a fit of sanity that gives one hope for humanity, they said "why don't
we all work on a *common* language?"

The big outsider was Clean, which, however, adopted quite a lot of things
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
the web.

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;
    sometimes less.
(3) Since the release of Windows NT, Microsoft *have* gone down the POSIX road. I have Microsoft's "Services for Unix Applications" installed
    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*
    than POSIX.

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 _functionally_.

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

Reply via email to