diff options
Diffstat (limited to 'README.org')
-rw-r--r-- | README.org | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/README.org b/README.org new file mode 100644 index 0000000..3f845ac --- /dev/null +++ b/README.org @@ -0,0 +1,47 @@ +* forget + +Forget things about symbols. Handy during interactive development. + +The `forget` function will forget function bindings, symbol bindings, +and class bindings. It will also unintern a symbol from its home package. + +The `forget` function can forget packages too, but you must pass +`:package? t` as an argument. + +Any of the default options can be turned off by passing `nil` to the +appropriate option. E.g. if you wanted to forget everything but not +unintern the symbol, you'd pass `:intern? nil`. + +Example: + +#+begin_src lisp +CL-USER> (defvar unremarkable "hey") +UNREMARKABLE + +CL-USER> (defun unremarkable () "hey") +UNREMARKABLE + +CL-USER> (defclass unremarkable () ()) +#<STANDARD-CLASS COMMON-LISP-USER::UNREMARKABLE> + +CL-USER> (setf (get 'unremarkable :hey) "you") +"you" + +CL-USER> (defpackage :unremarkable (:use #:cl)) +#<PACKAGE "UNREMARKABLE"> + +CL-USER> (forget:forget 'unremarkable) +WARNING: Unbinding function UNREMARKABLE +WARNING: Unbinding value UNREMARKABLE +WARNING: Unbinding class UNREMARKABLE +WARNING: Dropping symbol-plist on UNREMARKABLE +WARNING: Uninterning UNREMARKABLE from "COMMON-LISP-USER" +NIL + +CL-USER> (forget:forget 'unremarkable :package? t) +WARNING: Uninterning UNREMARKABLE from "COMMON-LISP-USER" +WARNING: Deleting package "UNREMARKABLE" +T +CL-USER> + +#+end_src |