1 Welcome to PLT Scheme
2 Scheme Essentials
3 Built-In Datatypes
4 Expressions and Definitions
5 Programmer-Defined Datatypes
6 Modules
7 Contracts
8 Input and Output
9 Regular Expressions
10 Exceptions and Control
11 Iterations and Comprehensions
12 Pattern Matching
13 Classes and Objects
14 Units (Components)
15 Reflection and Dynamic Evaluation
16 Macros
17 Performance
18 Running and Creating Executables
19 Compilation and Configuration
20 More Libraries
Bibliography
Index
Version: 4.0.2

 

4 Expressions and Definitions

The Scheme Essentials chapter introduced some of Scheme’s syntactic forms: definitions, procedure applications, conditionals, and so on. This section provides more details on those forms, plus a few additional basic forms.

    4.1 Notation

    4.2 Identifiers and Binding

    4.3 Function Calls (Procedure Applications)

      4.3.1 Evaluation Order and Arity

      4.3.2 Keyword Arguments

      4.3.3 The apply Function

    4.4 Functions (Procedures): lambda

      4.4.1 Declaring a Rest Argument

      4.4.2 Declaring Optional Arguments

      4.4.3 Declaring Keyword Arguments

      4.4.4 Arity-Sensitive Functions: case-lambda

    4.5 Definitions: define

      4.5.1 Function Shorthand

      4.5.2 Curried Function Shorthand

      4.5.3 Multiple Values and define-values

      4.5.4 Internal Definitions

    4.6 Local Binding

      4.6.1 Parallel Binding: let

      4.6.2 Sequential Binding: let*

      4.6.3 Recursive Binding: letrec

      4.6.4 Named let

      4.6.5 Multiple Values: let-values, let*-values, letrec-values

    4.7 Conditionals

      4.7.1 Simple Branching: if

      4.7.2 Combining Tests: and and or

      4.7.3 Chaining Tests: cond

    4.8 Sequencing

      4.8.1 Effects Before: begin

      4.8.2 Effects After: begin0

      4.8.3 Effects If...: when and unless

    4.9 Assignment: set!

      4.9.1 Guidelines for Using Assignment

      4.9.2 Multiple Values: set!-values

    4.10 Quoting: quote and

    4.11 Quasiquoting: quasiquote and `

    4.12 Simple Dispatch: case