En Emacs Lisp, si foo
es un símbolo, entonces 'foo
y #'foo
son completamente equivalentes. La última forma (con #'
) se prefiere cuando foo
es una función, ya que documenta el hecho de que está destinada a ser llamada.
Por lo tanto, sus dos formas son completamente equivalentes, y #'
se prefiere la que tiene.
Editar : como señaló Malabarba, esto no es del todo cierto: #'
en los símbolos, el compilador de bytes emitirá una advertencia si la función no está definida.
(Tenga en cuenta que este no es el caso de las formas lambda, para lo cual, simplemente, '
evita que el compilador de bytes compile la forma lambda, como se documenta en otra parte . Tenga en cuenta además que este no es necesariamente el caso en otros dialectos de Lisp, por ejemplo en Common Lisp #'foo
realiza la unión temprana).