1 Language Model
2 Syntactic Forms
3 Datatypes
4 Structures
5 Classes and Objects
6 Units
7 Contracts
8 Pattern Matching
9 Control Flow
10 Concurrency
11 Macros
12 Input and Output
13 Reflection and Security
14 Operating System
15 Memory Management
16 Running PLT Scheme
Bibliography
Index
On this page:
define-signature-form
struct
Version: 4.0.2

 

6.7 Extending the Syntax of Signatures

(define-signature-form sig-form-id expr)

(define-signature-form (sig-form-id id) body ...+)

Binds sig-form-id for use within a define-signature form.

In the first form, the result of expr must be a transformer procedure. In the second form, sig-form-id is bound to a transformer procedure whose argument is id and whose body is the bodys. The result of the transformer must be a list of syntax objects, which are substituted for a use of sig-form-id in a define-signature expansion. (The result is a list so that the transformer can produce multiple declarations; define-signature has no splicing begin form.)}

(struct id (field ...) option ...)

 

field

 

=

 

id

 

 

|

 

[id #:mutable]

 

 

 

 

 

option

 

=

 

#:mutable

 

 

|

 

#:omit-constructor

 

 

|

 

#:omit-define-syntaxes

 

 

|

 

#:omit-define-values

For use with define-signature. The expansion of a struct signature form includes all of the identifiers that would be bound by (define-struct id (field ...) option ...), where the extra option #:omit-constructor omits the make-id identifier.