Saya tidak sengaja menjalankan yang berikut ini:
(unintern variable)
dimana variable
nilainya nil
.
Bagaimana saya nil
kembali tanpa memulai ulang Emacs?
elisp
interactive-development
Sean Allred
sumber
sumber
Jawaban:
(defconst nil ())
tampaknya memiliki efek yang tepat; perhatikan itu
nil
dan daftar kosong tidak dapat dibedakan dalam Emacs Lisp.Saya melihat
lread.c:4034
untuk melihat bagaimananil
dibuat dalamobarray
.Perhatikan komentar di baris 3896 di
lread.c
:Ini menjelaskan mengapa Emacs tidak melindungi
(unintern nil)
dan(unintern t)
.sumber
Stef
yang ini, sebenarnya :) Di jalan itu ada kegilaan.nil
adalah kesalahan umum yang mudah dilindungi. Mengapa meletakkan pegangan tangan di tangga ketika orang bisa melompatinya?unintern
tidak sering digunakan, sungguh. Menggunakannya pada mainobarray
hampir selalu merupakan ide yang buruk (itulah sebabnya byte-compiler mengeluh ketika Anda gagal melewati argumen kedua, danC-h f unintern
tidak memberi tahu Anda bahwa argumen kedua sebenarnya masih opsional).