Subject: Re: Is C a functional programming language?
From: Erik Naggum <erik@naggum.no>
Date: 1999/03/18
Newsgroups: comp.lang.smalltalk,comp.lang.java.programmer,comp.lang.c++,comp.lang.basic.visual,comp.lang.lisp,comp.soft-sys.powerbuilder
Message-ID: <3130788523040567@naggum.no>
* Peter Holland <pholland@lucent.com>
| C is primarily an imperative language, not a functional language.
| LISP is a functional language.
this is really cross-posted way to widely to ever be useful, but I'll
answer the "LISP" part, anyway.
there is no _one_ language called "LISP". nowadays, is makes more sense
to talk about Common Lisp or Scheme. referring to Common Lisp as the
"LISP" your father knew is like calling C++ or Ada "Algol". referring to
Scheme as "LISP" is like calling C "Algol".
Common Lisp is object-oriented, functional, and imperative. it is what
you want it to be. Scheme is functional and imperative. you can make it
be whatever you want it to be.
IMNSHO, _programmers_ are object-oriented, functional, or imperative. if
they love pain and suffering, they will stick with a language that makes
their work tedious and boring and hard to get right, and this includes a
surprisingly large fraction of them, but otherwise they tend to choose
languages that support the way they already think.
however, one clue is important: if the language does not offer automatic
memory management ("garbage collection"), it takes extraordinary effort
to make it functional or object-oriented, and most attempts have failed.
in other words: if you're really into this, you can write a functional
environment in C, but without such an environment, C is imperative.
#:Erik