[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

MAKUNBOUND vs. special binding

    Date: Thu, 29 Jan 87 23:09 EST
    From: David A. Moon <Moon at STONY-BROOK.SCRC.Symbolics.COM>

    I believe the problem here is just the unfortunate use of the word
    "bind" to mean two different things.  (1) A variable is bound to
    a value when evaluating that variable produces that value, and is
    unbound when evaluating that variable is an error.  (2) A special
    variable is bound when its value has been saved upon entry to a
    dynamic extent, and will be restored upon exit.  This poor use of
    English seems to date back to the earliest days of Lisp, as far as
    I can tell, but maybe it's time to deep-six it.

Just for the record, MIT Scheme solves this terminology problem by using
the terms "bound" and "unassigned".  "Unbound" refers more or less to
(2) and "unassigned" to (1).  This works out pretty well.  The
equivalent of MAKUNBOUND is a primitive which makes a variable become
unassigned, and it has a semantics similar to SETQ.  There isn't any
primitive to make a variable become unbound once it is bound, although
in principle there could be.