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.