[slime-devel] slime-eval-last-expression and read-macros

Chris Capel pdf23ds at gmail.com
Tue Dec 14 02:31:35 UTC 2004


I have a read macro assigned to $ that takes two arguments separated
by a dot (it binds the dot character to be whitspace while the
expression is read). I can evaluate an expression like

$argA.argB

by placing the cursor after the expression and running
slime-eval-last-expression (usually C-xC-e). However, I can't do it
when expressions are nested thusly:

$(first $argA.argB).argC

because SLIME will send the Lisp process everything but the first $.

Now, I understand that the reason slime doesn't do this is because if
you try to evaluate things like

(funA(funB argA argB) argC)

by placing your cursor after the call to funB and evaluating that you
don't want it to send the lisp process "funA(funB argA argB)". And, in
CL, the $ character is in the alphabetic syntax category. So is there
nothing that can be done? Shall I forever be placing "progn"s around
my read macros so I can evaluate them?

If there's not a way to solve this in the general case, I suppose I
can work with a hacked copy of SLIME.

Oh, the joys of syntactic extension.

Chris Capel
-- 
"What is it like to be a bat? What is it like to bat a bee? What is it
like to be a bee being batted? What is it like to be a batted bee?"
-- The Mind's I (Hofstadter, Dennet)



More information about the slime-devel mailing list