8

:barこれは、シンボルを:bazパッケージからエクスポートする方法ですfoo

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

エクスポートされたシンボルのリストから削除する:bazと、SBCL が文句を言い、コンパイルが失敗します。

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

:bazSLIME をリロードせずに SBCL を忘れさせるにはどうすればよいですか?

4

3 に答える 3

13

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."
于 2012-07-05T19:23:43.143 に答える
2

これらの問題に関するドキュメントはたくさんあります。これらを読んだり、再読したりする必要があります。このパッケージ/シンボルのことは一見些細なことのように思えますが、他の言語が行うこととは十分に異なるため、読む価値があります (つまり、他の言語の知識を再利用しようとすることは、パッケージとシンボルに関しては特に危険です)。

ドキュメントを読んでも問題が解決しない場合は、もう一度読み直してみてください (問題が発生して得られた経験は、関連するセクションに集中するのに役立ちます。読む間に問題を起こさずに再読することは、あまり生産的ではありません)。

私が役に立つと思ったいくつかのリンク:

于 2012-07-06T05:36:01.180 に答える