This is a teaching material about functional programming in Scheme. The current version of the material is a 2nd edition. Compared the first edition from the Fall 2002, the title has been slightly changed. Scheme is a pragmatic choice of programming language in the functional programming paradigm, with unique flexibility due to the membership of the Lisp family of languages. Furthermore, Scheme is both very powerful and rather small compared to other Lisp languages.

As the title indicates, we are concerned with the functional subset of Scheme. As a unique aspect of this material, we illustrate the functional paradigm in Scheme with examples from the area of web programming and web authoring. This is done on the ground of LAML - the Lisp Abstracted Markup Language.

We hypothesize that an approach with HTML and XML examples is more motivating than many other approaches, which often tend to illustrate Scheme programming via examples of only little practical relevance.

The sound track of the cs.auc.dk version of this material depends on Real Player (www.real.com). The animations depend on SVG and a SVG plugin, such as the one from Adobe (http://www.adobe.com/svg/viewer/install/).

A number of exercises are integrated with this material. One star exercises are relatively easy, two star exercises of medium difficulty, and the three star exercises are the most demanding. The numbering of exercises follows the numbering of lectures. Figures, programs, tables etc. are numbered within the thematic section, where they appear.

The material is indexed, and the special index icon on most pages leads to the alphabetic index of the material.

When new concepts are introduced we often refer to The free Online Dictionary of Computing - FOLDOC. You must have an Internet connection to make use of the FOLDOC references.

In relation to Scheme, we provide references to the Revised(5) Report on the Algorithmic Language Scheme - R5RS . The Scheme Report is bundled with the CD version of this material.