[xyzzy:06625] defstruct の :print-function
- Subject: [xyzzy:06625] defstruct の :print-function
- From: aizawa minoru <maizawa@xxxxxxxxxxxxxxxxxxxx>
- X-mailer: Becky! ver. 2.00.03
こんばんわ、相沢です。
↓ defstruct で :print-function を使った時、望みの出力が得られません。
(defstruct (foo
(:print-function
(lambda (form stream depth)
(format stream "#<foo: ~S,~S,~S>"
(foo-a form)
(foo-b form)
(foo-c form)))))
a b c)
#<structure-definition: foo>
(make-foo :a 1 :b 2 :c 3)
#S(foo a 1 b 2 c 3) ; #<foo: 1,2,3> にならない
↓ print関数は、登録されているが、呼び出されていない感じ・・・
(let ((def
(defstruct (foo
(:print-function
(lambda (form stream depth)
(format stream "#<foo: ~S,~S,~S>"
(foo-a form)
(foo-b form)
(foo-c form)))))
a b c)))
(funcall (si:*structure-definition-print-function def)
(make-foo :a 1 :b 2 :c 3)
t
0))
#<foo: 1,2,3>
nil
--
相沢実(Minoru Aizawa)
maizawa@xxxxxxxxxxxxxxxxxxxx