Регистрация | Войти
Lisp — программируемый язык программирования

Получить список всех символов в пакете

Common Lisp предоставляет несколько макросов для перебора символов пакета. Два наиболее интересных: DO-SYMBOLS и DO-EXTERNAL-SYMBOLS. DO-SYMBOLS перебирает символы доступные в пакете, а DO-EXTERNAL-SYMBOLS только внешние символы (их можно считать API пакета).

Чтобы напечатать все внешние символы пакета по имени "PACKAGE", можно написать

(do-external-symbols (s (find-package "PACKAGE"))
  (print s)
)

Также можно собрать их в список, написав:

(let (symbols)
  (do-external-symbols (s (find-package "PACKAGE"))
    (push s symbols)
)

  symbols
)

Также можно сделать это же при помощи LOOP.

(loop for s being the external-symbols of (find-package "PACKAGE")
      collect s
)

@2009-2013 lisper.ru