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

[no subject]



From:     CWH@MIT-MC
Date: Wed, 25 Jan 79 01:50:24 GMT
Original-Date: 01/24/79 21:50:24 EDT
Subject:
    Is there any reason why the # reader macro in LISPM2;MACROS can't be
    rewritten to win on toplevel forms when used as #m or #q?  The reason
    it loses right now is that it reads the form following the #m regardless
    of whether it is running in maclisp or on the Lisp Machine.  Can't it decide
    beforehand?

This is because the # macro is a splicing macro (it has to
be in order to make #q and #m work). MacLisp ignores all
splicing macros at top level.  I suggested (because of a
similar problem with using # after a "." as in (#/a . #/z))
that when a splicing macro returns a list of one thing it
should be treated as if it was non-splicing. This was
adopted for the case of being after a dot (since previously
it had errored out in a wierd way) but it was left the same
at toplevel.

I will change the # macro to work at toplevel by not reading
the next form untill it is sure it wants to make it go away,
but I should say that this is somewhat of a kludge since it
means that this all splicing macros can do at toplevel. (It
would be impossible to have a splicing macro that DID
something to the following form work at toplevel.)