The language was designed to have very few, regular constucts which compose well to support a variety of programming styles including functional, object-oriented, and imperative. Significant Language Features Scheme has lexical scoping, uniform evaluation rules, and uniform treatment of data types. Scheme does not have the concept of a pointer, uninitialized variables, specialized looping constucts, or explicit storage management. In Scheme, all data types are equal. What one can do to one data type, one can do to all data types.
Numbers are especially interesting in that an integer is a rational and a real is a complex.
Scheme requires no looping constructs. Scheme has several important advantages. Its formal underpinnings make reasoning about programs much easier. Its abstractive power makes it easy to separate system specific optimizations from reusable code. Its composability makes it easy to construct systems from well-tested components.