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

YARIM and the adbmal example



    Date: 13 May 85  0905 PDT
    From: Jon White <JLW@SU-AI.ARPA>


    Re: your message of 10-May-85 14:39 EDT

    Not only is your adbmal example "right", but the following would have to
    work too
    (defmacro mumble (x) `(lambda (,x) (list ,x)))
    (defun foo () ((mumble z) (mumble z)))
    I just tried this out in pdp10 maclisp, and it still sort of works [I 
    remember putting this hac in about 1979 or 1980, and it wasn`t all
    that well received even back then].


    Incidentally, I did take your suggestion for macro-expansion contexts
    seriously.  Not that I approve of going al the way for it, but you do
    bring into focus the fact that several different kinds of processing
    are going on during interpretations -- not just EVAL alone, but there
    is FUNVAL (if you will) to fetch the function part, there is DODECLS
    to add to a declarations database [Maclisp had a functional counterpart
    to DECLARE, which is why macroexpansion seemed like such a natural idea
    there], and there is lambda-list parsing.  I'd prefer to see a uniform
    meta-expansion syntax -- such as defmacro -- but we may have to consider
    context as per your suggestion.
You got it. That is exactly what I just said to Scott.  Each of these
contexts should be identified separately, via a uniform mechanism.
That would fix ((mumble z) (mumble z)), i.e., make it -not- work.