Вопрос

Я очень новичок в LISP. Я использую Allegro-Cl. У меня трудно назвать функцию, которую я определил и загрузил. Я хотел бы знать, как я могу просматривать вещи, которые я определил, например, перечисляя все методы в определенном пакете или перечисляю только переменные, или перечисление имен пакетов и т. Д.

Это было полезно?

Решение

Я не использую Allegro CL, поэтому я могу только рассказать вам о инструментах, которые CL сама предоставляет для этого. Возможно, вы захотите проверить, что может предложить Allegro Cl IDE для этой задачи.

Вы можете получить список всех пакетов с помощью списка функций-все пакеты. Вы можете использовать его таким, чтобы распечатать их имена:

(dolist (p (list-all-packages)) (write-line (package-name p)))

CL -пакеты - это коллекции символов (т.е. имена), а не объекты, связанные с этими именами. Вы должны запросить имена в них дальше, чтобы увидеть, есть ли значение и/или функция, определенная для этого символа. Вы можете использовать До-символы Чтобы зацикнуть все символы в упаковке. Это распечатало бы все символы в текущем пакете:

(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)))

Другие советы

Если вы помните часть имени, вы всегда можете использовать (возможно, ограниченный конкретным пакетом), чтобы найти полное имя.

Я столкнулся с той же проблемой. После прочтения документации я пришел к мнению, что невозможно вспомнить определение, набравшее в Repl.

Чтобы обойти эту проблему, я всегда ввожу в окно редактора (Ctrl+N, если нет). Таким образом, я могу печатать определения, редактировать их и т. Д. С большим удобством. Если мне нужно оценить определение, я нажимаю CTRL+E для постепенной оценки (см. Другие варианты в меню «Инструменты»). Я держу окно слушателя слева и окно редактора справа, чтобы увидеть входы и выходы.

Есть еще небольшая проблема, которая может даже вызвать некоторые ошибки: если вы забыли оценить определение после того, как внесли в него изменения, старый остается в реплике. Продолжайте нажимать Ctrl+E.

Если у вас есть несколько файлов, и вы хотите найти определение в одном из исходных файлов, вы можете использовать Search> Apropos.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top