我已经定义了一个结构如下,
(struct vector (x y z)
#:methods gen:custom-write
[(define (write-proc vector port mode)
(let ([print (if mode write display)])
(write-string "<")
(print (vector-x vector))
(write-string ", ")
(print (vector-y vector))
(write-string ", ")
(print (vector-z vector))
(write-string ">")))])
但是我在 REPL 中遇到了一个奇怪的行为,其中结构被显示 3 次:
> (define a (vector 1 2 3))
> a
<1, 2, 3><1, 2, 3><1, 2, 3>
我一定做错了什么,但找不到我的问题。有人能解释一下为什么我有 3 倍的输出吗?