Respostas:
Não há diferença:
(eq 'my-add #'my-add)
rendimentos t
O #
pode ser usado na frente de uma lambda
expressão indicando ao compilador de byte que a seguinte expressão pode ser compilada por byte, consulte a documentação de Funções anônimas . Mas não há nada para compilar no caso de um símbolo.
Em geral, é usado na representação impressa junto com o colchete angular esquerdo (<) para indicar que o objeto impresso é uma descrição (mas não pode ser lido). Por exemplo:
#<buffer foo.txt>
Ele também é usado em construções pelo leitor para representar estruturas circulares. Consulte os documentos de Read Syntax for Circular Objects .
E então você tem seu uso para denotar a base para inteiros , por exemplo #x2c -> 44
.
Além disso, tenho certeza.
'symbol
representa (quote symbol)
e #'symbol
representa (function symbol)
sintaticamente.
A lista deve ser abrangente pode ser encontrada no topo do índice de referência lisp do Emacs .
Edit : Ou ainda mais convenientemente, de dentro do próprio Emacs:
M-x info
RET (abra o navegador de informações)
d m elisp
RET (abra o manual elisp)
I #
RET(liste as entradas #
no índice)
Eu encontrei esta pergunta enquanto procurava o que o hash significa em algo que encontrei durante o hacking mode-line-format
:
#("-%-" 0 3
(help-echo "Display as tooltip when mouse hovers or with display-local-help."))
que é um formato usado para propriedades de texto em strings onde:
"-%-"
, texto a ser propertizado: um traço e um % -construct que resulta em "traços suficientes para preencher o restante da linha de modo", resultando no famoso Emacs ------
.0
, o primeiro caractere ao qual as propriedades do texto se aplicam.3
, o último caractere ao qual as propriedades do texto se aplicam, ou seja , o todo "-%-"
.(help-echo "...")
, uma propriedade e uma string como seu argumento.Isso pode ser criado com a propertize
função :
(propertize "Hover over me!" 'help-echo '"congratulations!")
seria o mesmo que #("Hover over me!" 0 14 (help-echo "Congratulations!"))
:
Se você estiver usando o modo de bloqueio de fonte, o uso do buffer-substring
comando pode produzir algo assim:
(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))
Então você pode criar algo como:
#
a um símbolo solitário é obter diagnósticos em tempo de compilação se esse símbolo for indefinido.