t3x.org / sketchy / vol1 / toc1-x.html

Sketchy LISP

  By Nils M Holm, 2006,2007,2008
Buy a copy at Lulu.com

An Introduction to Functional Programming in Scheme

Contents

Preface
1 Basic Scheme Programming
1.1 Notation
1.2 Functional Programming
1.3 Loops in Functional Programs
1.3.1 Cond Revisited
1.4 Basic Data Types
1.4.1 Integers
1.4.2 Booleans
1.4.3 Chars, Strings, and External Representation
1.4.4 Lists, Symbols, and Quotation
1.5 Some Things You can do with Lists
1.6 Procedures and Local Scopes
1.6.1 What are Closures Good for?
1.7 Different Ways of Binding Symbols
1.7.1 Binding Recursive Functions
1.8 Lists, Pairs, and History
1.8.1 Association Lists
1.8.2 Nested Lists
1.8.3 A Historical Note
2 Less Basic Scheme Programming
2.1 Variable Argument Procedures
2.2 Identity and Equality
2.2.1 A More General Form of Equality
2.2.2 Using Identity and Equality
2.3 Higher Order Functions
2.3.1 Some Fun with Higher Order Functions
2.4 Dynamic Typing
2.5 Type Conversion
2.5.1 Arithmetics with Lists
2.6 Arithmetics
2.7 Strings and Characters Recycled
2.7.1 Garbage Collection
2.8 Input, Output, and Side Effects
2.8.1 Input and Output
3 Some Missing Pieces
3.1 Syntax Transformation
3.1.1 Pattern Matching
3.1.2 Substitution
3.1.3 Recursive Syntax
3.2 Quasiquotation
3.3 Tail-recursive Programs
3.4 Continuations
3.4.1 Non-Local Exits
3.4.2 Exposing some Gory Details
3.5 Lambda Calculus and the Y Combinator
3.5.1 Scheme vs Lambda Calculus
4 Scheme in the Wild
4.1 Drawing Box Diagrams
4.2 The DRAW-TREE Program
The End
Appendix
A.1 First Steps in Scheme
A.2 Scheme Style Guide
A.2.1 Definitions and Bindings
A.2.2 Procedure Application
A.2.3 Conditionals, Logic, Etc
A.2.4 Data and Quotation
A.3 Table of Example Programs
A.4 Scheme Syntax and Procedures
Index