Subject: ISLisp and `dynamic'
From: Erik Naggum <erik@naggum.no>
Date: 1995/12/18
Newsgroups: comp.lang.lisp
Message-ID: <19951218T233254Z@arcana.naggum.no>

ISLisp has an interesting mechanism when it comes to dynamic variables.  I
have come to like it, but there is a missing generality.

to define a dynamic variable: (defdynamic variable ...)
to access a dynamic variable: (dynamic variable)
to set a dynamic variable: (setf (dynamic variable) ...)
to bind a dynamic variable: (dynamic-let ((variable ...)) ...)

the latter form seems somewhat gratuitous, since it is not like `fluid-let'
and does the exactly same thing that `let' does, except for the new way to
refer to special variables.

I would prefer something of this sort:

    (let* ((variable1 ...)
	   ((dynamic variable2) ...)
	   (variable3 ...))
      ...)

i.e., if the `let' and `let*' forms have the grammar

    (let ((var form)*) body-form*)

then "var" may be a simple variable name or list whose first element is
`dynamic' and whose second and last is a dynamic variable name.

(this is based on generalized variable binding from the widely available
`letf' macro, but the special nature of `dynamic' makes it somewhat more
restrictive in scope than a fully general `letf' would be.)

comments?

#<Erik 3028318374>
-- 
suppose we actually were immortal...
what is the opposite of living your life as if every day were your last?