Доступ к активной таблице символов в Common Lisp

Я слышал, что активная таблица символов доступна во время выполнения Common Lisp. Я неправильно понял?

2 ответа

Решение

"Таблицы символов" называются "пакетами" в Common Lisp. См. Например: Введение в пакеты, CL HyperSpec.

В Common Lisp доступно несколько операций над пакетами: словарь пакетов.

Символы могут быть членами пакетов (будучи интернированными).

Переменная *package* содержит пакет в качестве значения, которое используется несколькими операциями, которые используют пакет по умолчанию. Примером является ' reader', который по умолчанию ищет в пакете *package*.

Ты можешь использовать do-all-symbols,

Смотрите здесь для аналогичного вопроса. Принятый ответ также содержит некоторые сведения о пакетах, что очень удобно.

Примерно так в коде. определять useful-symbol-p как вы считаете нужным:

(let ((lst ()))
   (do-all-symbols (s lst)
     (when (useful-symbol-p s) (push s lst)))
   lst)
Другие вопросы по тегам