SJS wrote:
begin quoting David Brown as of Sat, Jan 12, 2008 at 01:48:23AM -0800:
Since lisp compiles incrementally, this can be a little unclear.
Um, that's not a /requirement/ for LISP, is it?
No, it is not.
Common Lisp is required to support macros.
That doesn't mean that everything can't be interpreted all the way down.
ie. the expansion of the macro can be done by a sufficiently clever
interpreter.
Although, you could still call that expansion "incremental compiling".
However, then were arguing semantics rather than features.
In addition, I don't think Scheme required support for macros for a long
time. IIRC, SICP doesn't have any mention of macros at all (whoops ...
sorry ... didn't mean to drag the thread back on topic).
LISP does make it easy to modify running code, right? Just not via the
macro system.
Um, maybe. But then your talking about features of the REPL, not Lisp.
The main feature that you normally get from Lisp REPL is the ability to
inject extra code into the system so that you can do useful things after
interrupt/restart. This is not unique to Lisp.
Basically, any language with a well-managed lexical environment that you
can capture would work.
To be fair, you *could* do this even with C. Load new code, adjust the
call stack, slap a return down, and execute. IIRC, the issue is less
with C than with the fact that you are running directly on hardware
inside an OS--one of whose purposes is to prevent arbitrary damage from
one running program to another.
-a
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg