On Tue, Sep 29, 2020 at 12:50:44PM +0200, Emanuel Berg via Users list for the GNU Emacs text editor wrote: > tomas wrote: [...] > > Plus lots of other optimizations the compiler can > > do if it knows that it's the function value you are > > talking about. > > Yeah, you have an example of this? I think Stefan is in a far better position to answer that. One of the things is that, if the compiler knows you're going for the function definition, it can warn you if it "knows" this to be unbound in the relevant context. It might also eliminate check code if it knows that value to be present (or even use the value directly). > BTW how does _Lisp_ know what is refered to? [...] Syntactical context: if you say (foo 1 2 3) it knows it has to look up things in the variable's function cell, whereas in (+ 1 2 foo 3) it goes and looks up foo's variable's value cell. > > Plus the clarity of your code for your other readers. > > It makes the code _cooler_ but more clear, I don't > know, really. Perhaps to some. As usually, it takes some familiarity. But if I see, in the middle of something (mumble 1 2 #'foo 5) ...then I /know/ "aah, foo is being passed as a function". Whereas if I see (mumble 1 2 'foo 5) ...then I just don't know. It might be used as a function, as a symbol... whatever. Cheers - t