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

re: Dynamic binding

    Date: 16 Dec 89  1222 PST
    From: Dick Gabriel <RPG@SAIL.Stanford.EDU>

    [In reply to message from Gyro@reasoning.com sent Sat, 16 Dec 89 10:43 PST.]

    The Common Lisp package system is pretty obscure and admits very strange bugs
    in code if the package structure is not carefully controlled at every stage of
    loading/development. Is there a proposal to put packages in Scheme and that
    is what you are complaining about? Or is it the use of defaults for setting the
    current package?

The latter (*PACKAGE* just makes a good example for discussion, because
it's something that (I assume) everyone knows about).  More precisely, I
object to the fact that, for instance, I can readily be calling some
routine A which calls some routine which ... references the special
variable *B*, so that the value of *B* is properly part of A's interface
specification, without any clear indication in the source code that that
is the case.  (It's logically possible, of course, that a Lisp
programmer would list, as part of each procedure's documentation, all
special variables the procedure or any of its transitive callees
reference, and would maintain those lists as the code was edited, but
I've never seen it done; it would be just as much work as passing all
such values via required arguments, which is exactly what the use of
specials is supposed to obviate.)

-- Scott