On Sat, Apr 25, 2009 at 11:56 AM, Abdulaziz Ghuloum <[email protected]> wrote: > Also, please refer to Kent Pitman's "Special Forms in Lisp" for more details > and comparison between the different (compiled vs interpreted) semantics. > It's in > http://www.nhplace.com/kent/Papers/Special-Forms.html
Ah, this is the famous paper on the fexprs. I have seen it cited but never read it. Anyway, I have yet another question on phase separation (I never run short of questions on the subject, it seems). A byproduct of PLT full phase separation (I dunno about Larceny) is that they get a REPL (not in R6RS mode) which works like a compiled script: in particular if in the REPL I define a helper function and then a macro, the helper function is not available to the macro, unless the helper function was defined with define-for-syntax. Would it be possible for Ikarus to do the same? It seems possible, since the REPL would just need to keep a namespace for runtime entities and a different namespace for expand time entities. Now you may say that doing so would make the REPL less convenient to use and that you are not interested in offering such a "feature", fine with me. Actually, what I am after is a confirmation of my feeling that full phase separation and the tower of metalevels are not needed if one just wants a a REPL which behaves like a compiled script.
