Scheme is a dialect of Lisp that stresses conceptual elegance and simplicity. It is specified in R4RS and IEEE standard P1178. (See the Scheme FAQ for details on standards for Scheme.) Scheme is much smaller than Common Lisp; the specification is about 50 pages, compared to Common Lisp's 1300 page draft standard. (See question [4-10] for details on standards for Common Lisp.) Advocates of Scheme often find it amusing that the Scheme standard is shorter than the index to CLtL2.
Scheme is often used in computer science curricula and programming language research, due to its ability to represent many programming abstractions with its simple primitives. Common Lisp is often used for real world programming because of its large library of utility functions, a standard object-oriented programming facility (CLOS), and a sophisticated condition handling system.
See the Scheme FAQ for information about object-oriented programming in Scheme.
In Common Lisp, a simple program would look something like the following:
(defun fact (n) (if (< n 2) 1 (* n (fact (1- n)))))
In Scheme, the equivalent program would like like this:
(define fact (lambda (n) (if (< n 2) 1 (* n (fact (- n 1))))))
Experienced Lisp programmers might write this program as follows in order to allow it to run in constant space: