I like how you can retain representation in transparent structs:
(struct posn (x y)
#:transparent)
> (posn 1 2)
(posn 1 2)
But is there a way to customize it? Like in Python?
I like how you can retain representation in transparent structs:
(struct posn (x y)
#:transparent)
> (posn 1 2)
(posn 1 2)
But is there a way to customize it? Like in Python?
Check out the prop:custom-write
property here. Here's a simple implementation:
(struct pr (x y)
#:transparent
#:property prop:custom-write (λ (v p w?)
(fprintf p "<~a,~a>" (pr-x v) (pr-y v))))
> (pr 1 2)
<1,2>
Note that this works with non-#:transparent
structures as well.
© 2022 - 2024 — McMap. All rights reserved.