Emacs Lisp: difference between (function (lambda …)) and (lambda …)?
What is the difference between (function (lambda ...)) and (lambda ...) and '(lambda ...) ? It seems three are interchangeable in a lot of cases. They are pretty interchangeable. The answer is that function enables the lambda to be byte compiled, whereas the other two do not (and are equivalent). Note: this does not mean that function actually byte compile the lambda. How might one figure that out? A little Emacs lisp introspection provides some clues. To start: C-h f function RET : function is a special form in 'C source code'. (function arg) Like 'quote', but preferred for objects which are