2017-09-11 3 views
0

答えは明らかですが、私はこれに対して私の頭を叩いています。私は、LISPパッケージ内の外部定義されたすべてのものを記述しようとしています。以下の(SBCL)コードがうまくシンボルを出力します。lisp:パッケージ内のすべての外的なものを記述する

(require "sb-posix") 
(do-external-symbols (single-symbol 'sb-posix) 
    (prin1 single-symbol) (terpri)) 

...ので、私はこのようなものは、仕事をするだろうと期待していたが、それはしません。

(require "sb-posix") 
(do-external-symbols (single-symbol 'sb-posix) 
    (describe sb-posix:single-symbol)) 

最初

Unhandled SB-INT:SIMPLE-READER-PACKAGE-ERROR: 
    Symbol "SINGLE-SYMBOL" not found in the SB-POSIX package. 

明らかな修正は何ですか?

+2

'sb-posix:single-symbol'からパッケージ接頭辞を削除します。変数名は 'sb-posix'パッケージにはありません。 – jkiiski

答えて

4

あなたのコードは、変数single-symbolをsb-posixの各外部シンボルの値にバインドします。変数を表すシンボルは、現在のパッケージ(cl:*package*で指定されている)にあり、sb-posixパッケージではなく、sb-posixパッケージのプレフィックスで参照されるべきではありません。

関連する問題