Soy un poco nuevo en Emacs. Al mirar algunas de las configuraciones, descubrí que hay dos tipos de comando en "add-hook".
(add-hook 'LaTeX-mode-hook #'LaTeX-math-mode)
y
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
Esto me ha confundido durante mucho tiempo y no sé cómo buscar "# '" en Google ...
Gracias.
Respuestas:
En Emacs Lisp, si
foo
es un símbolo, entonces'foo
y#'foo
son completamente equivalentes. La última forma (con#'
) se prefiere cuandofoo
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).fuente
#'
indica al compilador que compile la lambda, a diferencia de la cita simple, que no lo hace. Me he reformulado de una manera esperanzadora más clara.