2012-07-05 15 views
5

これは私がパッケージfooからシンボル:bar:bazをエクスポートする方法である:以前にエクスポートされたシンボルについてLispを忘れるには?

(in-package :cl-user) 
(defpackage foo 
    (:use :cl) 
    (:export :bar :baz)) 
(in-package :foo) 

私はSBCLは文句とコンパイルが失敗したエクスポートシンボルのリストから:bazを削除します。私はSBCLはSLIMEをリロードせずについて:bazを忘れさせることができますどのように

warning: 
    FOO also exports the following symbols: 
     (FOO:BAZ) 

答えて

10

SBCL

* (apropos "unexport") 

UNEXPORT (fbound) 


* (documentation 'unexport 'function) 

"Makes SYMBOLS no longer exported from PACKAGE." 


* (apropos "unintern") 

UNINTERN (fbound) 


* (documentation 'unintern 'function) 

"Makes SYMBOL no longer present in PACKAGE. If SYMBOL was present then T is 
returned, otherwise NIL. If PACKAGE is SYMBOL's home package, then it is made 
uninterned." 
2

あなたが読んだり、再読み込みする必要があり、これらの問題、上のドキュメントの多くがあります。このパッケージ/シンボルのことは一目瞭然ではありますが、他の言語が読める価値があるものとは十分に異なっています(つまり、他の言語の知識を再利用しようとするとパッケージやシンボルに関して特に危険です)。

文書を読んだ後でも問題が解決しない場合は、問題を解決してください。問題が発生した場合は、関連するセクションに重点を置くようになり、読み込み間で問題を起こさずに再読することは非常に生産的ではありません。

私は重宝いくつかのリンク:

関連する問題