1 Evaluation Model
2 Syntax Model
3 Core Syntactic Forms
4 Core Datatypes
5 Structures
6 Classes and Objects
7 Units
8 Contracts
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
Index

contents

 index

← prev  up  next →

 

3 Core Syntactic Forms

This section describes the core syntax forms that apear in a fully expanded expression, plus a many closely-related non-core forms.

    3.1 Literals: quote and #%datum

    3.2 Expression Wrapper: #%expression

    3.3 Variable References and #%top

    3.4 Locations: #%variable-reference

    3.5 Procedure Applications and #%app

    3.6 Procedure Expressions: lambda and case-lambda

    3.7 Local Binding: let, let*, letrec, ...

    3.8 Conditionals: if, cond, and, and or

    3.9 Definitions: define, define-syntax, ...

    3.10 Sequencing: begin, begin0, and begin-for-syntax

    3.11 Guarded Evaluation: when and unless

    3.12 Assignment: set! and set!-values

    3.13 Iterations and Comprehensions: for, for/list, ...

      3.13.1 Iteration and Comprehension Forms

      3.13.2 Deriving New Iteration Forms

    3.14 Continuation Marks: with-continuation-mark

    3.15 Quasiquoting: quasiquote, unquote, and unquote-splicing

    3.16 Syntax Quoting: quote-syntax

    3.17 Modules: module, ...

    3.18 Importing: require, require-for-syntax, require-for-template

    3.19 Exporting: provide and provide-for-syntax

Notation

Each syntactic form is described by a BNF-like notation that describes a combination of (syntax-wrapped) pairs, symbols, and other data (not a sequence of characters). These grammatical specifications are shown as follows:

(some-form id ...)

Within such specifications,

 

contents

 index

← prev  up  next →