Skip to main content

package-name

package-name Function

Syntax:

package-name package → name

Arguments and Values:

package—a package designator .

name—a string or nil.

Description:

package-name returns the string that names package, or nil if the package designator is a package object that has no name (see the function delete-package).

Examples:

(in-package "COMMON-LISP-USER") → #<PACKAGE "COMMON-LISP-USER"> 
(package-name \*package\*)"COMMON-LISP-USER"
(package-name (symbol-package :test))"KEYWORD"
(package-name (find-package ’common-lisp))"COMMON-LISP"
(defvar \*foo-package\* (make-package "FOO"))

(rename-package "FOO" "FOO0")
(package-name \*foo-package\*)"FOO0"

Exceptional Situations:

Should signal an error of type type-error if package is not a package designator .

Expanded Reference: package-name

Basic Usage: Getting the Name of a Package

package-name returns the string name of a package.

(package-name *package*)
;; => "COMMON-LISP-USER"

(package-name (find-package "COMMON-LISP"))
=> "COMMON-LISP"

Using a String Designator

The argument can be a string (package name) or symbol, not just a package object.

(package-name "KEYWORD")
=> "KEYWORD"

(package-name 'keyword)
=> "KEYWORD"

The KEYWORD Package

(package-name (symbol-package :test))
=> "KEYWORD"

Deleted Packages Return NIL

After a package is deleted, package-name returns NIL for the deleted package object.

(let ((pkg (make-package "DOOMED" :use '())))
(delete-package pkg)
(package-name pkg))
=> NIL

The Name Reflects Renaming

If a package has been renamed, package-name returns the new name.

(make-package "ORIGINAL" :use '())
==> #<PACKAGE "ORIGINAL">

(rename-package "ORIGINAL" "RENAMED")
(package-name (find-package "RENAMED"))
=> "RENAMED"