On Tue, Jan 5, 2010 at 5:48 PM, Alan Ruttenberg alanruttenberg@gmail.com wrote:
(BTW, I don't see why there would be an actual function created here - should be optimized away)
I've had a go at implementing the optimization
([funcall] (lambda(a b [&rest c]) ...) p q [r s ...]) -> (let ((a p) (b q) (c (list r s ...))) ...)
http://svn.mumble.net:8080/svn/lsw/trunk/patches/optimize-lambda.lisp
I don't know if it's in the proper place in the compiler. I've compiled my code in 0.18 trunk using it and I haven't run into problems. It triggers some bug in my old version of ABCL (problem loading a class file!) but I don't think it's worth investigating that so I disable it in that version.
-Alan