Functional Programming & Scheme
- Labs and Tutorials
I've put all the Scheme & Functional programming notes
from this course in one place here so that it's easier for you
to go back and review.
- Lab 0: What is "functional
programming"? Look at the overview.
- Lab 1: Scheme Basics,
including expressions, arithmetic, function definitions,
let expressions, and recursion.
- Lab 2: Symbols and Lists.
- Lab 3: Representing data
- Lab 4: Functions as
- Define recursion functions with lambda:
- Lab 5: Recursion with lists vs. map & apply
letrec, list internals
and other efficiency issues: tail recursion!
- Lab 6: Breaking the
functional paradigm Part I: display and vectors.
- Lab 7: (OPTIONAL) Breaking the
functional paradigm further ... loops!
A few nice features: sequences of expressions usin
begin, variable number of arguments to functions.
Closures & Object-oriented programming in Scheme
- Online Language References
Here are some online resources to scheme and programming in
- scheme (5)
language definition - it's more useful than you might think!
(Note: The scheme (6)
sepcification has been ratified, but it's not clear when
we can expect to see complient interpreters, so we're
sticking to scheme (5).)
PLT MzScheme Language Manual
MzScheme is the scheme interpreter that runs in DrScheme,
i.e. the Scheme interpreter you're using! this
documentation is mostly about what's in MzScheme that goes
beyond the official language documentation.
- Scheme Interpreters
We'll use drscheme,
which is freely available
for Unix, PCs, Macs, etc. I find
intriguing. It's a scheme interpreter designed to be easy to
embed in a C/C++ program, and easy tie in as a macro language
for your C/C++ program. It's part of the gnu suite, and comes
standard with most Unix distros. Finally, how about
LispMe, a scheme
interpreter that runs under
PalmOS. I've got it running on my Palm T3 right now. Who
needs a calculator program when you've got a scheme
Christopher W Brown
Last modified: Fri Sep 5 16:09:57 EDT 2008