[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Quick question about lexically scoped defun...
Following the discussion in comp.lang.lisp and interested in playing with
what X3J13 is likely to define as legal...
If I do:
(let ((foo 0))
(defun FOO+ ()
(DEFUN FOO? ()
and compile it in the editor, it warns me about the non-null lexical env.
and do I really want to do this?
using the file compiler I just get warnings about DEFUN not at top level.
In both cases, the global definitions of foo? and foo+ work exactly as you
would expect: they understand that FOO is a reference to the lexical
environment. This is a feature I'd like to take advantage of in my
The question is: Since this REALLY IS what I want to be able to do, can I
turn this sort of warning off, i.e. for the file, a system, or for my entire
environment? I couldn't find any appropriate references in the document
examiner, and from glancing at the definition of
Enclose-Top-Level-Environment it looked like a change would be non-trivial.
I'm hoping there's actually a switch somewhere I don't know about.
Brad Miller U. Rochester Comp Sci Dept.