Teach Yourself Scheme in Fixnum Days

© Dorai Sitaram, 1998-2000
All Rights Reserved
ds26@gte.com
Document will grow
[Download archive containing all the pages of this document]
[Download TeX source for this document]

Cover art by Margaret Wong



Contents

Preface

1  Enter Scheme

2  Data types
    2.1  Simple data types
        2.1.1  Booleans
        2.1.2  Numbers
        2.1.3  Characters
        2.1.4  Symbols
    2.2  Compound data types
        2.2.1  Strings
        2.2.2  Vectors
        2.2.3  Dotted pairs and lists
        2.2.4  Conversions between data types
    2.3  Other data types
    2.4  S-expressions

3  Forms
    3.1  Procedures
        3.1.1  Procedure parameters
        3.1.2  Variable number of arguments
    3.2  apply
    3.3  Sequencing

4  Conditionals
    4.1  `when' and `unless'
    4.2  cond
    4.3  case
    4.4  `and' and `or'

5  Lexical variables
    5.1  `let' and `let*'
    5.2  fluid-let

6  Recursion
    6.1  letrec
    6.2  Named `let'
    6.3  Iteration
    6.4  Mapping a procedure across a list

7  I/O
    7.1  Reading
    7.2  Writing
    7.3  File ports
        7.3.1  Automatic opening and closing of file ports
    7.4  String ports
    7.5  Loading files

8  Macros
    8.1  Specifying the expansion as a template
    8.2  Avoiding variable capture inside macros
    8.3  fluid-let

9  Structures
    9.1  Default initializations
    9.2  `defstruct' definition

10  Alists and tables

11  System interface
    11.1  Checking for and deleting files
    11.2  Calling operating-system commands
    11.3  Environment variables

12  Objects and classes
    12.1  A simple object system
    12.2  Classes are instances too
    12.3  Multiple inheritance

13  Jumps
    13.1  call-with-current-continuation
    13.2  Escaping continuations
    13.3  Tree matching
    13.4  Coroutines
        13.4.1  Tree-matching with coroutines

14  Nondeterminism
    14.1  Description of `amb'
    14.2  Implementing `amb' in Scheme
    14.3  Using `amb' in Scheme
    14.4  Logic puzzles
        14.4.1  The Kalotan puzzle
        14.4.2  Map coloring

15  Engines
    15.1  The clock
    15.2  Flat engines
    15.3  Nestable engines

16  Shell scripts
    16.1  Hello, World!, again
    16.2  Scripts with arguments
    16.3  Example

17  CGI scripts
    17.1  Example: Displaying environment variables
    17.2  Example: Displaying selected environment variable
    17.3  CGI script utilities
    17.4  A calculator via CGI

A  Scheme dialects
    A.1  Invocation
    A.2  Init files
    A.3  Shell scripts
    A.4  define-macro
    A.5  load-relative

B  DOS batch files in Scheme

C  A clock for infinity

D  References