[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
- To: CWH at MIT-MC
- Subject:
- From: ALAN@MIT-AI
- Date: Wed, 25 Jan 79 04:57:50 GMT
- Cc: (BUG LISPM) at MIT-AI, (BUG LISP) at MIT-AI
- Original-date: 01/25/79 00:57:50 EDT
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.)