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