Function SYMBOL-PACKAGE

UP


Function SYMBOL-PACKAGE

Function SYMBOL-PACKAGE

構文

symbol-package symbol => contents

引数と戻り値

symbol - シンボル
contents - パッケージオブジェクトか、nil

定義

シンボルのホームパッケージを返却します。

例文

(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">
;; 次に続くフォームは、シンボルが本当にはuninternされておらず、
;; 「uninternされているらしい」状態で、
;; SYMBOL-PACKAGEがNILを返却するというシナリオです。
(setq s3 'pk1::sample3) =>  PK1::SAMPLE3
(import s3 'pk2) =>  T
(unintern s3 'pk1) =>  T
(symbol-package s3) =>  NIL
(eq s3 'pk2::sample3) =>  T

副作用

なし。

影響

import, intern, unintern

例外

もしsymbolがシンボルでないとき、 型type-errorのエラーが発生します。

参考

intern

備考

なし。


TOP, Github