unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* "Misunderstanding of the lambda calculus"
@ 2006-01-29  5:42 Chong Yidong
  0 siblings, 0 replies; 15+ messages in thread
From: Chong Yidong @ 2006-01-29  5:42 UTC (permalink / raw)


This may amuse some of the readers of this mailing list.  While
browsing the Wikipedia entry on lambda calculus, I saw that some wit
had written:

  Lisp uses a variant of lambda notation for defining functions, but
  only its purely functional subset is really equivalent to lambda
  calculus. Strictly speaking, this holds only for modern dialects of
  Lisp, such as Common Lisp and Scheme. More archaic Lisps, such as
  Emacs Lisp, still use dynamic binding, and so are not based on the
  lambda calculus. Rather, they are based on the syntax of the lambda
  calculus, together with a misunderstanding of the notion of binding
  and substitution in the lambda calculus.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
       [not found] <E1F3FdP-0002xe-OW@monty-python.gnu.org>
@ 2006-01-29 17:51 ` Jonathan Yavner
  2006-01-29 18:32   ` David Kastrup
  0 siblings, 1 reply; 15+ messages in thread
From: Jonathan Yavner @ 2006-01-29 17:51 UTC (permalink / raw)


> This may amuse some of the readers of this mailing list.  While
> browsing the Wikipedia entry on lambda calculus, I saw that some wit
> had written:
>     More archaic Lisps, such as Emacs Lisp, still use dynamic binding,
>     and so are not based on the lambda calculus. Rather, they are
>     based on the syntax of the lambda calculus, together with a
>     misunderstanding of the notion of binding and substitution in the
>     lambda calculus. 

Okay, I'll bite.  I slapped an {{NPOV}} sticker on that section 
("failure to maintain neutral point of view").  Would anyone who cares 
about such things please edit my complaint for correctness?

http://en.wikipedia.org/wiki/Talk:Lambda_calculus#Programming_languages
| The section on programming languages seems to be POV. It refers to
| Emacs Lisp but not ALGOL 60 as "archaic" (only Emacs Lisp is still in
| use). It incorrectly lauds Common Lisp as lacking dynamic binding (all
| Lisps need dynamic binding, which CL calls "special variables"). The
| claim that binding in Lisps don't match the lambda calculus because
| their authors "misunderstand" the calculus (rather than because the
| calculus in pure form has poor efficiency) is just a damn lie.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-01-29 17:51 ` Jonathan Yavner
@ 2006-01-29 18:32   ` David Kastrup
  2006-01-30 18:46     ` Richard M. Stallman
  0 siblings, 1 reply; 15+ messages in thread
From: David Kastrup @ 2006-01-29 18:32 UTC (permalink / raw)
  Cc: emacs-devel

Jonathan Yavner <jyavner@member.fsf.org> writes:

>> This may amuse some of the readers of this mailing list.  While
>> browsing the Wikipedia entry on lambda calculus, I saw that some wit
>> had written:
>>     More archaic Lisps, such as Emacs Lisp, still use dynamic binding,
>>     and so are not based on the lambda calculus. Rather, they are
>>     based on the syntax of the lambda calculus, together with a
>>     misunderstanding of the notion of binding and substitution in the
>>     lambda calculus. 
>
> Okay, I'll bite.  I slapped an {{NPOV}} sticker on that section
> ("failure to maintain neutral point of view").  Would anyone who
> cares about such things please edit my complaint for correctness?

Uh, "archaic" and "alive" is not a contradiction.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-01-29 18:32   ` David Kastrup
@ 2006-01-30 18:46     ` Richard M. Stallman
  2006-01-30 19:28       ` David Kastrup
  0 siblings, 1 reply; 15+ messages in thread
From: Richard M. Stallman @ 2006-01-30 18:46 UTC (permalink / raw)
  Cc: jyavner, emacs-devel

    Uh, "archaic" and "alive" is not a contradiction.

Yes it is.  "Archaic" does not mean "old" or "early".
It means "obsolete".

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-01-30 18:46     ` Richard M. Stallman
@ 2006-01-30 19:28       ` David Kastrup
  2006-01-31 18:03         ` Richard M. Stallman
  0 siblings, 1 reply; 15+ messages in thread
From: David Kastrup @ 2006-01-30 19:28 UTC (permalink / raw)
  Cc: jyavner, emacs-devel

"Richard M. Stallman" <rms@gnu.org> writes:

>     Uh, "archaic" and "alive" is not a contradiction.
>
> Yes it is.  "Archaic" does not mean "old" or "early".
> It means "obsolete".

ἡ ἀρχῆ in Greek means "the beginning".  John 1 starts of with "ἐν ἀρχῇ
ἦν ὁ λόγος": in the beginning, there was the word.

Now of course we all know that Emacs was there before Word, but this
might have escaped John's notice.

Webster defines "archaic" as

    Main Entry: ar·cha·ic
    Pronunciation: är-'kA-ik
    Function: adjective
    Etymology: French or Greek; French archaïque, from Greek
    archaïkos, from archaios 
    1 : having the characteristics of the language of the past and
    surviving chiefly in specialized uses 
    2 : of, relating to, or characteristic of an earlier or more
    primitive time : ANTIQUATED <archaic legal traditions> 
    3 capitalized : of or belonging to the early or formative phases
    of a culture or a period of artistic development; especially : of
    or belonging to the period leading up to the classical period of
    Greek culture 
    4 : surviving from an earlier period; specifically : typical of a
    previously dominant evolutionary stage 
    5 capitalized : of or relating to the period from about 8000
    B.C. to 1000 B.C. and the North American cultures of that time 

As you can see, practically all meanings involve surviving into the
present time.  So I stand by my point that "archaic" and "dead" are
not synonymous.

TeX certainly is archaic in the context of typesetting software, being
something like 25 years old in a form very similar to the current one,
yet it has very much survived.

The case is different with Emacs, since it is very far from what has
been called "Emacs" 25 years ago.  But still its user interface got
characteristic traits from a time long ago.

There is an old joke "I don't know what the computer language of
choice for numerical work will look like in 20 years from now, but it
will be called Fortran".  The same could be said about my editor of
choice, probably with more justification.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-01-30 19:28       ` David Kastrup
@ 2006-01-31 18:03         ` Richard M. Stallman
  2006-01-31 19:47           ` Kevin Rodgers
                             ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Richard M. Stallman @ 2006-01-31 18:03 UTC (permalink / raw)
  Cc: jyavner, emacs-devel

    As you can see, practically all meanings involve surviving into the
    present time.  So I stand by my point that "archaic" and "dead" are
    not synonymous.

Archaic does not imply "dead", but it does imply "not very much
alive".  Anyway, the relevant point is "archaic" is a smear term.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-01-31 18:03         ` Richard M. Stallman
@ 2006-01-31 19:47           ` Kevin Rodgers
  2006-01-31 20:09           ` Stefan Monnier
  2006-01-31 21:57           ` David Kastrup
  2 siblings, 0 replies; 15+ messages in thread
From: Kevin Rodgers @ 2006-01-31 19:47 UTC (permalink / raw)


Richard M. Stallman wrote:
>     As you can see, practically all meanings involve surviving into the
>     present time.  So I stand by my point that "archaic" and "dead" are
>     not synonymous.
> 
> Archaic does not imply "dead", but it does imply "not very much
> alive".  Anyway, the relevant point is "archaic" is a smear term.

Emacs Lisp is better described as "venerable".

-- 
Kevin Rodgers

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-01-31 18:03         ` Richard M. Stallman
  2006-01-31 19:47           ` Kevin Rodgers
@ 2006-01-31 20:09           ` Stefan Monnier
  2006-02-01 19:38             ` Richard M. Stallman
  2006-01-31 21:57           ` David Kastrup
  2 siblings, 1 reply; 15+ messages in thread
From: Stefan Monnier @ 2006-01-31 20:09 UTC (permalink / raw)
  Cc: jyavner, emacs-devel

[ I don't have the original email because messages from the last three days
  from gnu.org bounced (the gnu.org mailer got black-listed "by mistake" once
  again and my sysadmins keep insisting on using host-based backlisting) ]

I agree that the original text is biased against dynamic scoping and elisp.
But just for the record:

| The section on programming languages seems to be POV. It refers to Emacs
| Lisp but not ALGOL 60 as "archaic" (only Emacs Lisp is still in use).

It should probably say something like "older Lisps", since it is indeed
a fact (AFAIK) that all Lisps defined "recently" (around the time or
EuLisp, Common Lisp, Scheme, ...) use lexical scoping by default.

| It incorrectly lauds Common Lisp as lacking dynamic binding (all Lisps
| need dynamic binding, which CL calls "special variables").

While many Lists offer dynamic scoping, Lisps don't *need* dynamic scoping
more than any other language.  E.g. Scheme is a prominent Lisp dialect that
does not provide dynamic scoping (tho macros for it exist, of course).

| The claim that binding in Lisps don't match the lambda calculus because
| their authors "misunderstand" the calculus (rather than because the
| calculus in pure form has poor efficiency) is just a damn lie.

I think it's just a misunderstanding itself: the story goes that the
original Lisp-1.5 interpreter indeed ended up using dynamic scoping by
mistake (while the compiler used static scoping).  AFAIK all subsequent
languages that used dynamic scoping did it on purpose rather than
by mistake.  I.e. dynamic scoping originally appeared because of
a misunderstanding, but Richard consciously chose dynamic scoping over
static scoping for Emacs Lisp.

As for efficiency: except for naive interpreters, static scoping is
generally more rather than less efficient.


        Stefan

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-01-31 18:03         ` Richard M. Stallman
  2006-01-31 19:47           ` Kevin Rodgers
  2006-01-31 20:09           ` Stefan Monnier
@ 2006-01-31 21:57           ` David Kastrup
  2006-02-01  8:12             ` Alan Mackenzie
  2006-02-01 19:39             ` Richard M. Stallman
  2 siblings, 2 replies; 15+ messages in thread
From: David Kastrup @ 2006-01-31 21:57 UTC (permalink / raw)
  Cc: jyavner, emacs-devel

"Richard M. Stallman" <rms@gnu.org> writes:

>     As you can see, practically all meanings involve surviving into the
>     present time.  So I stand by my point that "archaic" and "dead" are
>     not synonymous.
>
> Archaic does not imply "dead", but it does imply "not very much
> alive".  Anyway, the relevant point is "archaic" is a smear term.

"Archaic life forms" are those that have survived basically unchanged
for millions of years, that were so well-adapted to their ecological
niche that natural selection has not weeded them out or made them
undergo significant changes.  That's not really a "smear term".  It
does imply "strange to behold as holding its own in modern times where
lots of things have changed utterly in comparison".  But that is
indeed something that I don't consider an unfitting sentiment when
confronted with Emacs.  Though TeX fits the bill even better.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-01-31 21:57           ` David Kastrup
@ 2006-02-01  8:12             ` Alan Mackenzie
  2006-02-01  8:52               ` David Kastrup
  2006-02-01 19:39             ` Richard M. Stallman
  1 sibling, 1 reply; 15+ messages in thread
From: Alan Mackenzie @ 2006-02-01  8:12 UTC (permalink / raw)
  Cc: jyavner, rms, emacs-devel

Hi, David!

On Tue, 31 Jan 2006, David Kastrup wrote:

>"Richard M. Stallman" <rms@gnu.org> writes:

>>     As you can see, practically all meanings involve surviving into
>>     the present time.  So I stand by my point that "archaic" and
>>     "dead" are not synonymous.

>> Archaic does not imply "dead", but it does imply "not very much
>> alive".  Anyway, the relevant point is "archaic" is a smear term.

>"Archaic life forms" are those that have survived basically unchanged
>for millions of years, that were so well-adapted to their ecological
>niche that natural selection has not weeded them out or made them
>undergo significant changes.  That's not really a "smear term".

David, "archaic" _is_ a smear term in this context.  There are ways of
expressing things in English (and in German) where what is said is
literally true, yet at the same time has strong derogatory overtones.

For example, "workmanlike" is complimentary if you so describe your new
fitted kitchen.  But if you call a musical performance "workmanlike",
you're saying "they played all the right notes", implying that deeper
musical finesse was lacking.

"Archaic" is like this.  "More archaic Lisps, such as Emacs Lisp, ...."
is saying "Emacs Lisp is a relic of history, caught in a time warp.  It
is so old, that it's utterly lacking in efficient modern language
features, and the people who use it are old crusty hackers who are unable
to adapt to slick new practices.".

>It does imply "strange to behold as holding its own in modern times
>where lots of things have changed utterly in comparison".  But that is
>indeed something that I don't consider an unfitting sentiment when
>confronted with Emacs.  Though TeX fits the bill even better.

Of course, the real truth is that it's taken other commonly used
languages (like C++, Java, ....) decades to catch up with Lisp.  :-)

>David Kastrup

-- 
Alan Mackenzie (Munich, Germany)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-02-01  8:12             ` Alan Mackenzie
@ 2006-02-01  8:52               ` David Kastrup
  2006-02-01 10:40                 ` Miles Bader
  0 siblings, 1 reply; 15+ messages in thread
From: David Kastrup @ 2006-02-01  8:52 UTC (permalink / raw)
  Cc: jyavner, rms, emacs-devel

Alan Mackenzie <acm@muc.de> writes:

> Hi, David!
>
> On Tue, 31 Jan 2006, David Kastrup wrote:
>
>>"Richard M. Stallman" <rms@gnu.org> writes:
>
>>>     As you can see, practically all meanings involve surviving into
>>>     the present time.  So I stand by my point that "archaic" and
>>>     "dead" are not synonymous.
>
>>> Archaic does not imply "dead", but it does imply "not very much
>>> alive".  Anyway, the relevant point is "archaic" is a smear term.
>
>>"Archaic life forms" are those that have survived basically unchanged
>>for millions of years, that were so well-adapted to their ecological
>>niche that natural selection has not weeded them out or made them
>>undergo significant changes.  That's not really a "smear term".
>
> David, "archaic" _is_ a smear term in this context.

Proper smear terms would be "obsolescent", "obsolete", "retarded".
While I agree that "archaic" might be intended to smear here, it is
applied because of a lack of a significant reason.  It is similar to
the use of "liberal" in U.S. circles.

>>It does imply "strange to behold as holding its own in modern times
>>where lots of things have changed utterly in comparison".  But that
>>is indeed something that I don't consider an unfitting sentiment
>>when confronted with Emacs.  Though TeX fits the bill even better.
>
> Of course, the real truth is that it's taken other commonly used
> languages (like C++, Java, ....) decades to catch up with Lisp.  :-)

Not at all.  There is no catching up here that I can see: completely
different ecological niches.  Humans didn't evolve due to playing
catch up with duck-billed platypuses.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-02-01  8:52               ` David Kastrup
@ 2006-02-01 10:40                 ` Miles Bader
  2006-02-01 15:01                   ` Jonathan Yavner
  0 siblings, 1 reply; 15+ messages in thread
From: Miles Bader @ 2006-02-01 10:40 UTC (permalink / raw)
  Cc: jyavner, Alan Mackenzie, rms, emacs-devel

David Kastrup <dak@gnu.org> writes:
>> David, "archaic" _is_ a smear term in this context.
>
> Proper smear terms would be "obsolescent", "obsolete", "retarded".

Language is about communication.  I think to anyone reasonably fluent in
english, it's pretty clear that "archaic" was used quite deliberately in
this case to mean "it sux0rz!1!" while avoiding explicitly
confrontational language.  Since it handily achieved the goal, of
communicating contempt, it's hard to argue that it wasn't a "proper"
smear term...

-miles
-- 
"Suppose He doesn't give a shit?  Suppose there is a God but He
just doesn't give a shit?"  [George Carlin]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-02-01 10:40                 ` Miles Bader
@ 2006-02-01 15:01                   ` Jonathan Yavner
  0 siblings, 0 replies; 15+ messages in thread
From: Jonathan Yavner @ 2006-02-01 15:01 UTC (permalink / raw)
  Cc: emacs-devel

> I think to anyone reasonably fluent in english, it's pretty clear that
> "archaic" was used quite deliberately in this case to mean "it
> sux0rz!1!" while avoiding explicitly confrontational language.  

Response was to change "archaic" to "older", which was still wrong but 
further discussions of the precise meaning of "archaic" are now 
obsolete.  The current problem (which has been solved but it's not 
clear yet whether the solution will stick) lies with the word 
"misunderstanding" and the mind-set it implies that "Scheme is what 
Lisp always should have been" (and more generally with the mind-set 
that it is acceptable to rewrite history so it points to your desired 
outcome).  Anyway, this isn't helping to get v22.1 out the door.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-01-31 20:09           ` Stefan Monnier
@ 2006-02-01 19:38             ` Richard M. Stallman
  0 siblings, 0 replies; 15+ messages in thread
From: Richard M. Stallman @ 2006-02-01 19:38 UTC (permalink / raw)
  Cc: jyavner, emacs-devel

    It should probably say something like "older Lisps", since it is indeed
    a fact (AFAIK) that all Lisps defined "recently" (around the time or
    EuLisp, Common Lisp, Scheme, ...) use lexical scoping by default.

Emacs Lisp was defined in 1984, which makes it newer than Common Lisp
or Scheme.

    As for efficiency: except for naive interpreters, static scoping is
    generally more rather than less efficient.

I only know how to write a naive interpreter.  Anyway, having
implemented static scoping in an interpreter for Common Lisp, I wanted
nothing like that again!

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: "Misunderstanding of the lambda calculus"
  2006-01-31 21:57           ` David Kastrup
  2006-02-01  8:12             ` Alan Mackenzie
@ 2006-02-01 19:39             ` Richard M. Stallman
  1 sibling, 0 replies; 15+ messages in thread
From: Richard M. Stallman @ 2006-02-01 19:39 UTC (permalink / raw)
  Cc: jyavner, emacs-devel

    > Archaic does not imply "dead", but it does imply "not very much
    > alive".  Anyway, the relevant point is "archaic" is a smear term.

    "Archaic life forms" are those that have survived basically unchanged
    for millions of years, that were so well-adapted to their ecological
    niche that natural selection has not weeded them out or made them
    undergo significant changes.  That's not really a "smear term".

That one example doesn't disprove the point, it just misses the point.
To describe _usage_ as "archaic" says it is no longer current.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2006-02-01 19:39 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-29  5:42 "Misunderstanding of the lambda calculus" Chong Yidong
     [not found] <E1F3FdP-0002xe-OW@monty-python.gnu.org>
2006-01-29 17:51 ` Jonathan Yavner
2006-01-29 18:32   ` David Kastrup
2006-01-30 18:46     ` Richard M. Stallman
2006-01-30 19:28       ` David Kastrup
2006-01-31 18:03         ` Richard M. Stallman
2006-01-31 19:47           ` Kevin Rodgers
2006-01-31 20:09           ` Stefan Monnier
2006-02-01 19:38             ` Richard M. Stallman
2006-01-31 21:57           ` David Kastrup
2006-02-01  8:12             ` Alan Mackenzie
2006-02-01  8:52               ` David Kastrup
2006-02-01 10:40                 ` Miles Bader
2006-02-01 15:01                   ` Jonathan Yavner
2006-02-01 19:39             ` Richard M. Stallman

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).