Указание нескольких параметров в конструкторе структуры? - PullRequest
2 голосов
/ 17 сентября 2011

Я попытался определить структуру с помощью пользовательской функции печати и конструктора следующим образом:

(defun print-test (a-test stream depth)
       (format stream "#<TEST-STRUCT ~A>" (test-struct-a a-test)))

(defstruct (test-struct (:print-function print-test
                          :constructor create-test
                          (&key a (b a) c)))
       a
       b
       c)

Но при оценке я получаю:

Bad defstruct option (:PRINT-FUNCTION PRINT-TEST :CONSTRUCTOR
                      CREATE-TEST (&KEY A B C)).
   [Condition of type CCL::SIMPLE-PROGRAM-ERROR]

Но указание одного ключевого слова само по себе работает очень хорошо,Как я могу это исправить?

1 Ответ

2 голосов
/ 17 сентября 2011

Согласно грамматике параметры должны заключаться в скобки индивидуально. Поэтому форма defstruct должна выглядеть следующим образом:

(defstruct (test-struct (:print-function print-test)
                        (:constructor create-test (&key a (b a) c)))
  a
  b
  c)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...