Jawaban:
Tidak ada perbedaan:
(eq 'my-add #'my-add)
hasil t
The #
dapat digunakan di depan sebuah lambda
ekspresi yang menunjukkan ke byte-compiler bahwa ekspresi berikut dapat byte dikompilasi, lihat dokumentasi untuk Fungsi Anonymous . Tapi tidak ada yang bisa dikompilasi dalam kasus simbol.
Secara umum, ini digunakan dalam representasi yang dicetak bersama dengan braket sudut kiri (<) untuk menunjukkan bahwa objek yang dicetak adalah deskripsi (tetapi tidak dapat dibaca). Sebagai contoh:
#<buffer foo.txt>
Ini juga digunakan dalam konstruksi oleh pembaca untuk mewakili struktur melingkar. Lihat dokumen untuk Sintaks Baca untuk Objek Edaran .
Dan kemudian Anda memiliki penggunaannya untuk menunjukkan basis untuk bilangan bulat , misalnya #x2c -> 44
.
Ditambah lagi saya yakin.
'symbol
merepresentasikan (quote symbol)
dan #'symbol
merepresentasikan secara (function symbol)
sintaksis.
Daftar harus-komprehensif dapat ditemukan di bagian atas indeks referensi cadel Emacs .
Sunting : Atau bahkan lebih nyaman, dari dalam Emacs itu sendiri:
M-x info
RET (buka browser info)
d m elisp
RET (buka manual elisp)
I #
RET(daftar entri untuk #
di indeks)
Saya menemukan pertanyaan ini saat mencari apa arti hash dalam sesuatu yang saya temukan saat meretas mode-line-format
:
#("-%-" 0 3
(help-echo "Display as tooltip when mouse hovers or with display-local-help."))
yang merupakan format yang digunakan untuk properti teks dalam string di mana:
"-%-"
, teks yang akan diberi properti: satu tanda hubung dan % -konstruksi yang menghasilkan "tanda hubung yang cukup untuk mengisi sisa baris mode", menghasilkan Emacs yang terkenal ------
.0
, karakter pertama yang menerapkan properti teks.3
, karakter terakhir yang diterapkan properti teks, yaitu keseluruhan "-%-"
.(help-echo "...")
, properti dan string sebagai argumennya.Ini dapat dibuat dengan propertize
fungsi :
(propertize "Hover over me!" 'help-echo '"congratulations!")
akan sama dengan #("Hover over me!" 0 14 (help-echo "Congratulations!"))
:
Jika Anda menggunakan mode kunci font, menggunakan buffer-substring
perintah mungkin menghasilkan sesuatu seperti ini:
(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))
Jadi Anda bisa membuat sesuatu seperti:
#
simbol tunggal adalah untuk mendapatkan diagnosis pada waktu kompilasi jika simbol itu tidak ditentukan.