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

Re: Making a lambda-expr more like a fn



> One of the changes to CL2 that bit me has been that
> raw lambda's can no longer be funcall'd (or apply'd)
> directly.
> 
> With CMULisp, I have remedied this by coercing the lambda
> into a function first:
> 
>         (setf (org-lexpr p) (coerce lexpr 'function))
> 
> But CCL::COERCE-TO-FUNCTION won't have it:

This is a known bug.  I believe there's a patch for it, but don't remember the 
name.  Try asking bug-mcl.

> I was able to get what I wanted compiling the form instead.  However, in
> this application, I would like very much to avoid the compilation overhead
> if at all possible.  Can I?

Since MCL is (for the most part) a compiled-only implementation, there is 
actually no real difference between the forms (coerce lexpr 'function) and 
(compile nil lexpr), except that the former fails due to a bug.  That is, if 
the bug were not present then the call to coerce would call the compiler to 
process the lambda expression.