Subject: Re: Pass by reference
From: Erik Naggum <erik@naggum.net>
Date: 18 Nov 2000 02:09:28 +0000
Newsgroups: comp.lang.lisp
Message-ID: <3183502168138803@naggum.net>

* Bruce Hoult <bruce@hoult.org>
| All you have to do is pass a function that evaluates the expression.  
| This is common in nearly every language for things such as sort 
| functions, and certainly *extremely* common in languges such as Lisp 
| which allow anonymous lambda functions.

  You mean (lexical) closures, not just anonymous lambda functions.
  That's a very clever implementation technique, because using something
  like that is _not_ spelled out as we know to be closures today in the
  literature of these languages at the time, like the implementation of
  closures is not spelled out in the Common Lisp standard, either, only
  their semantics.  E.g., I have seen the C-based Simula compiler go to
  some rather astonishing lengths _not_ to implement closures.  Plus, I
  thought it would just be confusing to try to mix in closures with this
  design, since the closures are not accessible in the language, and any
  means of achieving same is acceptable, kinda like OUT arguments in Ada
  if you're in quibble mode.

#:Erik
-- 
  ALGORITHM: a procedure for solving a mathematical problem in a finite
  number of steps that frequently involves repetition of an operation.
  ALGOREISM: a procedure for solving an electoral problem in a finite
  number of steps that frequently involves repetition of an operation.