Skip to main content

packagep

packagep Function

Syntax:

packagep object → generalized-boolean

Arguments and Values:

object—an object.

generalized-boolean—a generalized boolean.

Description:

Returns true if object is of type package; otherwise, returns false.

Examples:

(packagep \*package\*) → true 
(packagep ’common-lisp) → false
(packagep (find-package ’common-lisp)) → true

Notes:

(packagep object) (typep object ’package)

Expanded Reference: packagep

Basic Usage: Testing if an Object is a Package

packagep returns true if the argument is a package object, and false otherwise.

(packagep (find-package "COMMON-LISP"))
=> T

(packagep *package*)
=> T

Non-Package Objects

Symbols, strings, and other objects are not packages.

(packagep 'common-lisp)
=> NIL

(packagep "COMMON-LISP")
=> NIL

(packagep 42)
=> NIL

(packagep nil)
=> NIL

Deleted Packages Still Satisfy packagep

Even after deletion, the package object still has type package.

(let ((pkg (make-package "PKGP-DEMO" :use '())))
(delete-package pkg)
(packagep pkg))
=> T

Equivalence with typep

packagep is equivalent to (typep object 'package).

(let ((pkg (find-package "COMMON-LISP")))
(eq (packagep pkg)
(typep pkg 'package)))
=> T