If you just want to create a temporary function and don't want to
bother giving it a name,
lambda is what you need.
> #'(lambda (x) (+ x 3)) (LAMBDA (X) (+ X 3)) > (funcall * 5) ;* is the last result,remember? 8 <tscreen><verb> The combination of <tt/lambda/ and <tt/mapcar/ can replace many loops. For example, the following two forms are equivalent: <tscreen><verb> > (do ((x '(1 2 3 4 5) (cdr x)) (y nil)) ((null x) (reverse y)) (push (+ (car x) 2) y)) (3 4 5 6 7) > (mapcar #'(lambda (x) (+ x 2)) '(1 2 3 4 5)) (3 4 5 6 7)
However the first version will run significantly faster when compiled by CMUCL. But speed isn't everything and the second version is a lot clearer and easier to debug.