Eu acidentalmente executei o seguinte:
(unintern variable)
Onde variable
está o valor nil
?
Como eu nil
volto sem reiniciar o Emacs?
elisp
interactive-development
Sean Allred
fonte
fonte
Respostas:
(defconst nil ())
parece ter o efeito certo; note que
nil
e uma lista vazia são indistinguíveis no Emacs Lisp.Eu olhei
lread.c:4034
para ver comonil
é criado em um arquivoobarray
.Observe o comentário na linha 3896 em
lread.c
:Isso explica por que o Emacs não protege contra
(unintern nil)
e(unintern t)
.fonte
Stef
este, na verdade :) Naquele caminho está a loucura.nil
é um erro comum e fácil de proteger. Por que colocar um corrimão em uma escada quando as pessoas podiam pular sobre ela?unintern
realmente não é usado com frequência. Usá-lo em geralobarray
é sempre uma péssima idéia (é por isso que o compilador de bytes reclama quando você não passa o segundo argumento eC-h f unintern
não diz que o segundo argumento ainda é opcional).