aboutsummaryrefslogtreecommitdiff

Table of Contents

1 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:

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> 

Created: 2023-09-16 Sat 12:12

Validate