Accidentalmente ejecuté lo siguiente:
(unintern variable)
donde variable
estaba el valor nil
.
¿Cómo nil
regreso sin reiniciar Emacs?
elisp
interactive-development
Sean Allred
fuente
fuente
Respuestas:
(defconst nil ())
parece tener el efecto correcto; tenga en cuenta que
nil
y una lista vacía no se puede distinguir en Emacs Lisp.Miré
lread.c:4034
para ver cómonil
se crea en unobarray
.Tenga en cuenta el comentario en la línea 3896 en
lread.c
:Esto explica por qué Emacs no protege contra
(unintern nil)
y(unintern t)
.fuente
Stef
esto, en realidad :) En ese camino se encuentra la locura.nil
es un error común contra el cual es fácil protegerse. ¿Por qué poner un pasamanos en una escalera cuando la gente puede saltar sobre ella?unintern
no se usa con frecuencia, de verdad. Usarlo en el mainobarray
es casi siempre una mala idea (razón por la cual el compilador de bytes se queja cuando no pasa el segundo argumento, yC-h f unintern
no le dice que el segundo argumento todavía es opcional).