5.3 define-datatype

► |  | How to Design Programs Languages

1 | Beginning Student
2 | Beginning Student with List Abbreviations
3 | Intermediate Student
4 | Intermediate Student with Lambda
5 | Advanced Student
| Index

▼ | 5 | Advanced Student

5.1 | define
5.2 | define-struct
5.3 | define-datatype
5.4 | lambda
5.5 | Function Calls
5.6 | begin
5.7 | begin0
5.8 | set!
5.9 | delay
5.10 | shared
5.11 | let
5.12 | recur
5.13 | case
5.14 | match
5.15 | when and unless
5.16 | Primitive Operations
5.17 | Unchanged Forms

On this page:

define-datatype

top← prev up next →

#### 5.3`` define-datatype

( define-datatype datatypeid [variantid fieldid ...] ...)

A short-hand for defining a group of related structures. A define-datatype form

( define-datatype datatypeid
[variantid fieldid ...]
...)

is equivalent to

( define (datatypeid? x)
( or (variantid? x) ...))
( define-struct variantid (fieldid ...))
...

top← prev up next →