2011-09-17 5 views
2

나는과 같이 사용자 정의 인쇄 기능과 생성자와 구조를 정의하는 시도 :구조체 생성자에서 여러 옵션 지정?

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

그러나 잘 키워드 단독 작품 중 하나를 지정. 이 문제를 어떻게 해결할 수 있습니까?

답변

2

grammar에 따르면 옵션을 개별적으로 괄호로 묶어야합니다. 따라서 defstruct 양식은 다음과 같이 표시되어야합니다.

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