Respuestas:
No hay diferencia:
(eq 'my-add #'my-add)
rendimientos t
El #
se puede usar delante de una lambda
expresión que indica al compilador de bytes que la siguiente expresión puede ser compilada por bytes, consulte los documentos para funciones anónimas . Pero no hay nada que compilar en el caso de un símbolo.
En general, se utiliza en la representación impresa junto con el corchete de ángulo izquierdo (<) para indicar que el objeto impreso es una descripción (pero no se puede leer). Por ejemplo:
#<buffer foo.txt>
El lector también lo utiliza en construcciones para representar estructuras circulares. Consulte los documentos para leer la sintaxis para objetos circulares .
Y luego tiene su uso para denotar la base de números enteros , por ejemplo #x2c -> 44
.
Y más, estoy seguro.
'symbol
representa (quote symbol)
y #'symbol
representa (function symbol)
sintácticamente.
La lista debería ser completa se puede encontrar en la parte superior del índice de referencia lisp de Emacs .
Editar : O incluso más convenientemente, desde el propio Emacs:
M-x info
RET (abre el navegador de información)
d m elisp
RET (abre el manual de elisp)
I #
RET(enumere las entradas #
en el índice)
Encontré esta pregunta mientras buscaba qué significaba el hash en algo que encontré mientras pirateaba mode-line-format
:
#("-%-" 0 3
(help-echo "Display as tooltip when mouse hovers or with display-local-help."))
que es un formato utilizado para propiedades de texto en cadenas donde:
"-%-"
, texto para ser propietario: un guión y una construcción% que resulta en "guiones suficientes para llenar el resto de la línea de modo", dando como resultado el famoso Emacs ------
.0
, el primer carácter sobre el que se aplican las propiedades del texto.3
, el último carácter sobre el que se aplican las propiedades del texto, es decir , la totalidad "-%-"
.(help-echo "...")
, una propiedad y una cadena como argumento.Esto se puede crear con la propertize
función :
(propertize "Hover over me!" 'help-echo '"congratulations!")
sería lo mismo que #("Hover over me!" 0 14 (help-echo "Congratulations!"))
:
Si está usando el modo de bloqueo de fuente, el uso del buffer-substring
comando puede producir algo como esto:
(buffer-substring 1 28) ; First 27 characters in the current buffer
⇒ #(";; This buffer is for notes"
0 3
(fontified t face font-lock-comment-delimiter-face)
3 27
(fontified t face font-lock-comment-face))
Entonces podrías crear algo como:
#
a un símbolo solitario es obtener diagnósticos en tiempo de compilación si ese símbolo no está definido.