|   | 
 ANSI Common Lisp    10 Symbols    10.2 Dictionary of Symbols
 
| 10.2.12  symbol-package | 
Function | 
  
 - Syntax:
 - 
symbol-package
symbol
  
  contents
  - Arguments and Values:
 - 
symbol - a symbol.
contents - a package object or nil.
 
  - Description:
 - 
Returns the home package of symbol.
  - Examples:
 - 
 (in-package "CL-USER")   #<PACKAGE "COMMON-LISP-USER">
 (symbol-package 'car)   #<PACKAGE "COMMON-LISP">
 (symbol-package 'bus)   #<PACKAGE "COMMON-LISP-USER">
 (symbol-package :optional)   #<PACKAGE "KEYWORD">
 ;; Gensyms are uninterned, so have no home package.
 (symbol-package (gensym))    NIL
 (make-package 'pk1)   #<PACKAGE "PK1">
 (intern "SAMPLE1" "PK1")    PK1::SAMPLE1, NIL
 (export (find-symbol "SAMPLE1" "PK1") "PK1")    T
 (make-package 'pk2 :use '(pk1))   #<PACKAGE "PK2">
 (find-symbol "SAMPLE1" "PK2")    PK1:SAMPLE1, :INHERITED
 (symbol-package 'pk1::sample1)   #<PACKAGE "PK1">
 (symbol-package 'pk2::sample1)   #<PACKAGE "PK1">
 (symbol-package 'pk1::sample2)   #<PACKAGE "PK1">
 (symbol-package 'pk2::sample2)   #<PACKAGE "PK2">
 ;; The next several forms create a scenario in which a symbol
 ;; is not really uninterned, but is "apparently uninterned",
 ;; and so SYMBOL-PACKAGE still returns NIL.
 (setq s3 'pk1::sample3)    PK1::SAMPLE3
 (import s3 'pk2)    T
 (unintern s3 'pk1)    T
 (symbol-package s3)    NIL
 (eq s3 'pk2::sample3)    T
 
  - Affected By:
 - 
import,
intern,
unintern
  - Exceptional Situations:
 - 
Should signal an error of type type-error if symbol is not a symbol.
  - See Also:
 - 
intern
  - Allegro CL Implementation Details:
 - 
 None.
  
 |