Newsgroups: comp.lang.lisp,comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!rochester!cornellcs!newsstand.cit.cornell.edu!newstand.syr.edu!news.maxwell.syr.edu!news.bc.net!torn!kwon!watserv3.uwaterloo.ca!undergrad.math.uwaterloo.ca!not-for-mail
From: papresco@csclub.uwaterloo.ca (Paul Prescod)
Subject: Re: Why lisp failed in the marketplace
Sender: news@undergrad.math.uwaterloo.ca (news spool owner)
Message-ID: <E5tx82.M8E@undergrad.math.uwaterloo.ca>
Date: Wed, 19 Feb 1997 02:50:26 GMT
X-Newsposter: Pnews 4.0-test50 (13 Dec 96)
References: <01bc13dc$cfaa2b20$0f02000a@gjchome.nis.newscorp.com> <330512CF.6458@acm.org>
Nntp-Posting-Host: calum.csclub.uwaterloo.ca
Organization: University of Waterloo Computer Science Club
Lines: 62
Xref: glinda.oz.cs.cmu.edu comp.lang.lisp:25513 comp.lang.scheme:18721

In article <330512CF.6458@acm.org>, Sin-Yaw Wang  <sinyaw@acm.org> wrote:
>George J. Carrette wrote:
>> 
>> There were toy implementation of C available and that didn't seem to hurt
>> C.
>> So what really happened with LISP?
>
>I guess this serves to answer historical interest.  Few people really
>care about this anymore.
>
>I think fundamentally, Lisp syntax is not natural for human being.  It
>is elegant for computer or software to process, but not for real
>people.  From grade school, you are taught 10 = 8 + 2, not 10 = (+ 8
>2).  From high school, you learn how to prove mathematical theorems
>procedually.

Really? Is 2 the result of applying the "+ 1" function to "1" or the result
of allocating a location called "x" that has the contents of 1 and then
incrementing the data at the location "x"?

Functional programming is about taking expressions like:

(a + b - ( c * d ) )

and extending them to do computations:

(a + b - ( (if c 1/e else 1/f) * d) )

Seems pretty natural to me!

Does this seem like a more natural progression to you:

real temp;

if c then
   temp = 1/e;
else
   temp = 1/f;

(a + b - (temp * d)); // better check overflow in the next statement

Note that I have separated the issues of infix vs. prefix as irrelevant to
functional languages vs. imperative ones.

>Basically, a procedural language is more "natural" than a symbolic one.
>When I taught Scheme in school, it takes a good 2 weeks just to get the
>recursive part into their heads.
>
>If it is less natural, it is less productive, statistically speaking. 

Mathematics is not natural at all. How long does it take to teach
it? Should we quit doing so?

I think that recursion and computer programming can be taught right
alongside traditional math from grade 1 up. When you are learning order
of operations you should be able to type in the expressions and see
how the computer interprets them. When you are exploring functions,
you should be able to write functions, using a syntax similar to that
on the blackboard (which is certainly NOT procedural!).

 Paul Prescod

