Common Lisp, экспортирующий символы из пакетов

Есть ли короткий способ экспортировать все символы из пакета или это единственный способ сделать это? в defpackage. Обычно я пишу свой код в файл foo.lisp, который обычно начинается с (in-package :foo), и помещаю определение пакета в файл package.lisp. ] который обычно включает что-то вроде этого:

(in-package :cl-user)

(defpackage :foo
  (:use :cl)
  (:documentation "Bla bla bla."
  (:export :*global-var-1*
           :*global-var-2*
           :function-1
           :function-2
           :struct
           :struct-accessor-fun-1
           :struct-accessor-fun-2
           :struct-accessor-fun-3
           :struct-accessor-fun-4))

У меня такой вопрос: проектирование простого интерфейса с использованием некоторых глобальных переменных и функций иногда может быть неадекватным, и вам придется экспортировать некоторые структуры. В этом случае, если вы просто не экспортируете функции доступа этой структуры, вы не сможете манипулировать объектами этой структуры. Итак, есть ли простой способ добиться этого эффекта без ручного экспорта всех этих функций доступа?

12
задан oakenshield1 17 March 2012 в 08:00
поделиться