6

Common Lisp ランタイム内でアクティブなシンボル テーブルにアクセスできると聞いたことがあります。私は誤解しましたか?

4

2 に答える 2

8

「シンボル テーブル」は、Common Lisp では「パッケージ」と呼ばれます。例:パッケージの紹介、CL HyperSpec を参照してください。

パッケージに対するいくつかの操作は、Common Lisp: The Packages Dictionaryで利用できます。

シンボルはパッケージのメンバーになることができます (「interned」)。

変数*package*は、パッケージを値として保持します。これは、パッケージをデフォルトとして使用するいくつかの操作で使用されます。例は ' reader ' で、これはデフォルトで *package* のパッケージを検索します。

于 2010-09-20T07:19:11.430 に答える
5

使用できますdo-all-symbols

同様の質問については、こちらを参照してください。受け入れられた回答には、パッケージに関する詳細も含まれており、便利です。

コードでこのようなもの。適切と思われるように定義useful-symbol-pします。

(let ((lst ()))
   (do-all-symbols (s lst)
     (when (useful-symbol-p s) (push s lst)))
   lst)
于 2010-09-20T02:12:18.480 に答える