functional

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Wed Mar 10 14:08:59 PST 2010


On 03/10/2010 02:42 PM, James Iry wrote:
> Andrei Alexandrescu Wrote:
>
> I don't disagree with you (except that you probably meant "first
> class" rather than "first order").
>
> But that wasn't the question.   The question was "does a language
> have to enforce purity in order to be a functional language" and the
> answer is that historically that has not been the case.  The Lisp
> family (especially Scheme) and the ML family both have a rich
> tradition of purely functional programming without ever having the
> purity enforced. They did not "adopt the functional window dressing";
> they invented it.

Mutation has always been seen as an awkward concession to efficiency by 
functional languages, and limited to the maximum extent possible. LISP 
has commonly used a pure subset (see e.g. 
http://www-formal.stanford.edu/jmc/history/lisp/node3.html) for proving 
essentially everything there is to be proven regarding functional 
programming.

There's one final nail in the coffin. In wake of concurrency, de jure 
immutability becomes a necessity, not a useful and desirable de facto 
convention. Adopting the window dressing but not the essence of FP by a 
concurrent language evokes to me a scene in the Marx Brothers: an 
otherwise impeccably-dressed gentleman who forgot to put his pants on.


Andrei



More information about the Digitalmars-d mailing list