At first glance, Java and Scheme appear to have little in common. Java is written in notation similar to the widely used C programming language, while Scheme is written in parenthesized prefix notation. In addition, Java expresses computations primarily in terms of operations attached to objects while Scheme expresses computations primarily in terms of functions applied to values--mechanizing the familiar world of algebra. In short, Java is a data-centered language while Scheme is a function-centered language.
Nevertheless, Java and Scheme are surprisingly similar beneath the surface. In this short monograph, we will discover how easy it is for a Scheme programmer to learn to write good Java code. The only obstacles are learning Java notation and learning how to organize programs in object-oriented (data-centered) form.