I see that the discussion has progressed considerably during the (for me, in
California) night, so I'll just make a couple of comments...

Ketil Z. Malde wrote:

> : functions, while pretty first class objects, reside in
>   their own namespace, and need special operators.
> : iteration and side effects are not particularly discouraged,
>   and is probably as common as recursion and purity in actual
>   code.

I agree, and would add (if I'm recalling correctly) that LISP lacks lexical
scoping, which may not be an absolute requirement for functional programming
but certainly enhances it, and is a common feature of functional languages.

Friedrich Dominicus wrote:

> But saying Lisp isn't functional (to some extend) is
> simply not true.

Well, it's that "to some exten[t]" that is the crux here, I think. If you
are going to say that LISP "is" or "is not" a functional language (an overly
simplistic, binary distinction), then you have to decide where to draw the
line between "functional languages" and other languages that may, to some
degree, include support for functional programming. LISP has much more
support for FP than C++ or Perl, but not as much as Scheme, which in turn is
less "pure" than Haskell or Erlang. So whether you want to say that it "is"
functional or not is just a matter of where you draw the line. Scheme, which
is undeniably more "functional" than LISP, is about the least purely
functional language I would call "functional". So that's where I draw the
line. Your mileage may vary.

Craig



Reply via email to