gpt4 book ai didi

racket - 如何打印 Racket 结构

转载 作者:行者123 更新时间:2023-12-02 09:56:55 26 4
gpt4 key购买 nike

有什么方法可以控制结构体的打印方式吗?

例如,如果我有一个包含图像的透明结构:

(struct photo (label image-data) #:transparent)

但我不想打印 image-data 字段。

最佳答案

我想稍微扩展一下本的回答。您还可以组合gen:custom-writemake-constructor-style-printer使结构打印变得更加容易。此函数为您处理打印、书写、引用深度和输出端口之间的差异。

扩展他的示例给出:

#lang racket
(require pict
racket/struct)

(struct photo (label image-data)
#:transparent
#:methods gen:custom-write
[(define write-proc
(make-constructor-style-printer
(lambda (obj) 'photo)
(lambda (obj) (list (photo-label obj)))))])

(displayln (photo "fish" (standard-fish 100 100)))
;; Prints #<photo: fish>

(println (photo "fish" (standard-fish 100 100)))
;; Prints (photo "fish")

现在写入显示打印都可以如您所期望的那样工作

关于racket - 如何打印 Racket 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39602240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com