Neil Jerram <neiljer...@gmail.com> writes: >> I've been working on removing redundant `function' around `lambda' in >> Emacs core, > > I'm slightly curious about the history and reasoning around this. If I > understand correctly, (lambda ...) on its own has always worked, and it's > never been strictly necessary to add (quote ...) or (function ...) around > it. Then sometime (Emacs 19 or later, I think) it started being > recommended to use (function ...). > > Do you know why that recommendation started, and should I understand that > the reasoning for it has now evaporated?
Correct, there is no reason to do this. I don't know the history here, and there are people on emacs-devel that would know better. I _suspect_ that the byte-compiler first got the capability to optimize calls to anonymous functions, but that it required to explicitly marked as such with `function'. Later, it grew the capability to recognize lambda as such automatically. But I don't know if that is correct; it's just a guess. In any case, they are no longer needed as lambda and lambda+function are equivalent. (Note that the worst thing here is to do `(quote (lambda ...))' as that defeats byte-compiler optimizations altogether.)