CLOS и пакеты
От: uncommand  
Дата: 29.04.08 16:55
Оценка:
Еще один глупый вопрос.

Допустим, в пакете A объявлен класс

(defclass my-class ()
  ((my-field :accessor my-field
            :initarg my-field)))


Пакет экспортирует символы my-class и my-field.
Вопрос: можно ли в пакете B инстанциировать класс с помощью make-instance, если в нем используется пакет A?

При попытке это сделать

(make-instance 'my-class :my-field <my-value>)


CLISP говорит, что

Illegal keyword/value pair :MY-FIELD, #<some object> in argument list.
The allowed keywords are #1=(A:MY-FIELD ...)


И даже непонятно префикс пакета как указывать для keyword символов.

Выход из этой ситуации можно найти, определив генерик-метод с теми же keyword параметрами как и при создании класса, но как-то некрасиво это...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.