Robert Maas, http://tinyurl.com/uh3t wrote:
Why this response is so belated:
  <http://groups.google.com/group/misc.misc/msg/cea714440e591dd2>
= <news:[EMAIL PROTECTED]>
Date: Tue, 24 Jun 2008 18:42:15 -0400
From: John W Kennedy <[EMAIL PROTECTED]>
... 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:http://www.cs.sfu.ca/~cameron/Teaching/383/PassByName.html>.

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. ...you 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"
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to