Risposte:
Non c'è differenza:
(eq 'my-add #'my-add)
i rendimenti t
La #
può essere utilizzato a fronte di uno lambda
espressione che indica al byte-compilatore che la seguente espressione può essere compilato byte, vedere la documentazione per funzioni anonime . Ma non c'è niente da compilare nel caso di un simbolo.
In generale, viene utilizzato nella rappresentazione stampata insieme alla parentesi angolare sinistra (<) per indicare che l'oggetto stampato è una descrizione (ma non può essere letto). Per esempio:
#<buffer foo.txt>
Viene anche utilizzato nei costrutti dal lettore per rappresentare strutture circolari. Consulta i documenti per Read Syntax for Circular Objects .
E poi hai il suo uso per denotare la base per interi , ad es #x2c -> 44
.
E di più ne sono sicuro.
'symbol
rappresenta (quote symbol)
e #'symbol
rappresenta (function symbol)
sintatticamente.
La lista dovrebbe essere completa può essere trovata all'inizio dell'indice di riferimento lisp di Emacs .
Modifica : o ancora più comodamente, dall'interno di Emacs stesso:
M-x info
RET (apri il browser delle informazioni)
d m elisp
RET (apri il manuale di elisp)
I #
RET(elenca le voci per #
nell'indice)
Ho trovato questa domanda mentre cercavo cosa significasse l'hash in qualcosa che ho trovato durante l'hacking mode-line-format
:
#("-%-" 0 3
(help-echo "Display as tooltip when mouse hovers or with display-local-help."))
che è un formato utilizzato per le proprietà del testo nelle stringhe dove:
"-%-"
, testo da correggere: un trattino e una % -construct che risulta in "trattini sufficienti a riempire il resto della riga della modalità", risultando nel famoso Emacs ------
.0
, il primo carattere su cui si applicano le proprietà del testo.3
, l'ultimo carattere su cui si applicano le proprietà del testo, ovvero l'intero "-%-"
.(help-echo "...")
, una proprietà e una stringa come argomento.Questo può essere creato con la propertize
funzione :
(propertize "Hover over me!" 'help-echo '"congratulations!")
sarebbe lo stesso di #("Hover over me!" 0 14 (help-echo "Congratulations!"))
:
Se stai utilizzando la modalità di blocco dei caratteri, l'utilizzo del buffer-substring
comando potrebbe produrre qualcosa del genere:
(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))
Quindi potresti creare qualcosa come:
#
a un simbolo solitario è ottenere la diagnostica in fase di compilazione se quel simbolo non è definito.