Я не использую Allegro CL, поэтому я могу рассказать вам только об инструментах, которые CL предоставляет для этого.Возможно, вы захотите проверить, что Allegro CL IDE может предложить для этой задачи.
Вы можете получить список всех пакетов с помощью функции LIST-ALL-PACKAGES.Вы можете использовать это для печати их имен:
(dolist (p (list-all-packages)) (write-line (package-name p)))
Пакеты CL - это наборы символов (т.е. имен), а не объекты, связанные с этими именами.Вы должны запросить имена в них далее, чтобы увидеть, есть ли значение и / или функция, определенная для этого символа.Вы можете использовать DO-SYMBOLS для циклического перебора всех символов в пакете.Это напечатало бы все символы в текущем пакете:
(do-symbols (s) (print s)
это только функции:
(do-symbols (s) (when (fboundp s) (print s)))
и это только функции, чей домашний пакет является текущим пакетом:
(do-symbols (s)
(when (and (eq (symbol-package s) *package*)
(fboundp s))
(print s)))