如何在Racket中提供与结构相关的所有功能

时间:2019-02-26 16:41:47

标签: struct module racket

是否有一种方法可以提供与struct相关的所有功能,而无需明确枚举它们?

例如,如果我有foo.rkt

#lang racket
(provide foo-struct) ; provide all functions, not just the constructor
(struct foo-struct (biz bop))

然后是bar.rkt

#lang racket
(require "foo.rkt")
(define foo (foo-struct 1 2)) ; works just fine
(foo-struct-biz foo) ; is undefined

是否有一种方法可以提供foo-struct-bizfoo-struct-bop(以及与该结构相关的任何其他方法)而无需明确列出它们?

1 个答案:

答案 0 :(得分:1)

感谢评论中的@PetSerAl,这样做的方法是

(provide (struct-out foo-struct))

将提供与foo-struct相关的所有方法。