The Importance of Terminology's Quality

John W Kennedy jwkenne at
Wed Jul 2 03:56:58 CEST 2008

Robert Maas, wrote:
> Why this response is so belated:
>   <>
> = <news:rem-2008jun25-003 at>
>> Date: Tue, 24 Jun 2008 18:42:15 -0400
>> From: John W Kennedy <jwke... at>
>> ... the "thunks" were necessary at the machine-language level to
>> /implement/ ALGOL 60, but they could not be expressed /in/ ALGOL.
> Ah, thanks for the clarification. Is that info in the appropriate
> WikiPedia page? If not, maybe you would edit it in?

It is explained s.v. "thunk", which is referenced from "ALGOL 60". The 
ALGOL "pass-by-name" argument/parameter matching was perhaps the most 
extreme example ever of a language feature that was "elegant" but 
insane. What it meant, in effect, was that, unless otherwise marked, 
every argument was passed as two closures, one that returned a fresh 
evaluation of the expression given as the argument, which was called 
every time the parameter was read, and one that set the argument to a 
new value, which was called every time the parameter was set.

See <URL:>.

ALGOL 60 could not create generalized user-written closures, but could 
create one no more complex than a single expression with no arguments of 
its own simply by passing the expression as an argument. But it was not 
thought of as a closure; that was just how ALGOL 60 did arguments.
John W. Kennedy
  "Give up vows and dogmas, and fixed things, and you may grow like 
That. may come to think a blow bad, because it hurts, and not 
because it humiliates.  You may come to think murder wrong, because it 
is violent, and not because it is unjust."
   -- G. K. Chesterton.  "The Ball and the Cross"

More information about the Python-list mailing list