Reference: PLT Scheme

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
contents index
← prev up next →

#### 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.

contents index
← prev up next →