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) 
関連する問題