Hi Craig,
Many thanks for the package system explanations. Indeed, all this
going back-and-forth between symbols and names confuses me.
>>>> "Craig" == Craig Lanning
<CraigL(a)internetx.net> writes:
Craig> It is typically considered bad programming style (in any language) to
Craig> make common use of global variables.
This is not true. It is bad programming style to use
*non-encapsulated* global variables.
Of course, a functional programming style is usually preferable.
This, however, excludes dynamic binding as well.
Craig> One of the main benefits of dynamically binding global
Craig> variables is to use them as global parameters which can be
Craig> modified within an execution thread and appear as global values
Craig> to all the code in the thread, but be completely invisible to
Craig> all other threads.
I'm not arguing against the benefits of dynamic binding. I am,
however, arguing that it is bad design in Common Lisp that a single
declaration may inadvertently change the meaning of all bindings to
the same naming, even though they may be totally unrelated.
> Of course, this mechanism is necessary to keep compatibility
with
> older Lisps. From a fresher perspective, I conjecture it would be
> better to make dynamic scoping explicit everywhere by introducing
> extra binding and reference operators.
Craig> I cannot remember ever needing a nondynamic global variable.
You're missing the point. The point is that introducing a dynamic
global variable changes the meaning of program constructs which don't
have anything to do with the global variable at all.
--
Cheers =8-} Chipsy
Friede, Völkerverständigung und überhaupt blabla