Introduction to Computer Programming
What has been written in Scheme?
The Student Management Team suggested that I explain what kinds of programs
have been written in Scheme.
The following list of applications are lifted from various books
where there is Scheme code or a problem (so that the author thinks
it could be done).
Scheme and the Art of Programming:
rational numbers
the Fibonnachi function
polynomial manipulation
binary numbers
towers of hanoi
eight queens
ackerman's function
sets and relations
matrix arithmetic
sorting and searching (quicksort, ...; binary search)
relational databases
stacks
pascal's triangle
hash tables
simulation of a gas station
estimation of pi
text formatting
Grune's problem
Programming in Scheme:
random walks
drawing circle and square patterns on the screen (circle-squared)
finding molecular weights from chemical formulas
translating DNA into proteins
generating simple sentences
abbott and costello's "who's on first?"
dealing cards
Lissajous figures
logo turtles
rule based expert systems
solitaire peg game
calendar reminders
hangman
Structure and Interpretation of Computer Programs
square root
testing for primality
smoothing functions
interval arithmetic
change counting
symbolic differentation (yes, this is what you do in calculus)
Huffman encoding
complex number operations
symbolic algebra
bank accounts
monte-carlo integration
simulating digital circuits
constraint propogation
signal processing
interpreters for Scheme and other languages
deductive information retrieval
compilation
(from the instructor's manual for SICP)
game of 21
navigation
points in the plane
mazes
the doctor program
series-parallel resistive networks
simulation of a queueing system
paranoid programming (i.e., run-time assertions)
This should give you the idea. But wait, all of these are introductory books.
Scheme has also been used to for many research projects, especially for
prototyping interpreters for other programming languages. Since Scheme is
a dialect of LISP, any LISP program could, without too much trouble, be written
in Scheme. This includes most artificial intelligence programs: such as
programs that play chess, programs that understand English (to some extent),
and robotics, vision, etc.
None of this should be surprising for two reasons. First,
Scheme is a general purpose programming language, meaning that
it is designed to do anything reasonably well (and nothing really well).
This is in contrast to special purpose programming languages, like the
Lotus 1-2-3 macro language or a language for controlling robots.
So in a sense Scheme, like C++, BASIC, Pascal, and most other languages that
you may have heard of can do anything. If you can write a C++ program to
do something, you can also write a Scheme program to do the same thing.
And vice versa. Second, any programming language can be used, in theory,
to write anything that can be written as a computer program.