Respostas:
Não há diferença:
(eq 'my-add #'my-add)
rendimentos t
O #pode ser usado na frente de uma lambdaexpressã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.
'symbolrepresenta (quote symbol)e #'symbolrepresenta (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 propertizefunçã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-substringcomando 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.