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

Re: Common LOOPS questions



I think that METHOD is closer to FUNCTION than LAMBDA, e.g, I'd propose
something like:

(defmethod foo ((x frob) y) body)

=> 
(setf (symbol-function 'foo)
	(specialize (symbol-function 'foo)
			(method (lambda ((x frob) y) 
				(method-block (foo frob) body))))))

specialize can treat first-arg nil the same as first-arg as null
discriminator (getting rid of the fboundp check). method-block is there
for run-super. 

We've had some internal debates about mlet and mlabels. I think it is
clear that flet and  labels want to remain a lexical binding of
symbol-function. 

mlet and mlabels were added pretty much simultaneously with the shift
from discriminating symbols to discriminating functions.

I'm not sure mlet and mlabels are implementable (they aren't in our
implementation, which is about 4 weeks behind the paper.)