Today modern programming languages have changed the the way how to design & solve problems more effectively & in a productive way. Although present day programming languages like Java, DotNet, C# etc have been evolved for the concepts & layout set previously by languages like Pascal, SIMULA, C, C++ but each programming language presents a particular world view in the features it allows, supports, and forbids.
Scheme is currently gaining favor as a first programming language in universities and is used in industry by such companies as DEC, TI, Tektronix, HP, and Sun. Scheme is a general-purpose computer programming language.

It is a high-level language(OOP), supporting operations on structured data such as strings, lists, and vectors, as well as operations on more traditional data such as numbers and characters.
Getting Started
Download Latest PLT Scheme Version This program will install like any other program in few clicks.
Running DrScheme & DrScheme Interface
After its install, It can be launched form the Start Menu or from the shortcut icon on the desktop.
Dr Scheme Interface is very simple, above part is the Definition window & just below it you can see the Interaction window.

Getting into Programming
According to Ken Dickey, Scheme is a small, exceptionally clean language which is, very importantly, fun to use. The language was designed to have very few, regular constructs which compose well to support a variety of programming styles including functional, object-oriented, and imperative.
The language standard is only about 50 pages, including a formal, denotational definition of its semantics. Scheme is prefix and C is infix:
In Scheme In C
(+ 2 3 4) (2 + 3 + 4)
(< low x high) ((low < x) && (x < high))
(+ (* 2 3) (* 4 5)) ((2 * 3) + (4 * 5))
(f x y) f(x, y)
(define (sq x) (* x x)) int sq(int x) { return (x * x) }
In Scheme, unnamed functions are created with the key word lambda.
(lambda (x) (* x x)) -> a function (define sq (lambda (x) (* x x)) (sq 9) -> 27 ((lambda (x) (* x x)) 9) -> 27 ((if (foo? x) * +) 2 3 4) -> if (foo? x) is true, then (* 2 3 4) else (+ 2 3 4) (define (curried-add x) (lambda (y) (+ x y)) (define add3 (curried-add 3)) ;; add3 is a funciton (add3 7) -> 10 ((curried-add 3) 7) -> 10
There are seven kinds of expressions:
Constant: 'foo #Z 3 "a string" Variable reference: foo joe a-long-name-for-an-identifier + Procedure creation: (lambda (z) (* z z z)) Procedure application: (cube 37) Conditional: (if (< x 3) sqrt modulo) Assignment: (set! x 5) Sequence: (begin (write x) (write y) (newline))
Scheme has the usual assortment of data types:
Characters: #a #A #b #B #space #newline Strings: "A little string" Arrays (called vectors): #(1 2 "string" #x 5) Lists: (a little (list of) (lists)) Numbers: 47 1/3 2.3 4.3e14 1+3i Functions (also called procedures) Booleans: #t #f Ports (e.g. open files) Symbols: this-is-a-symbol foo a32 c$23*4&7+3-is-a-symbol-too!
- A vector’s contents can be any data objects.
- Symbols may include the characters + – . * / < = > ! ? : $ % _ & ~ and ^.
- Symbols are case insensitive.
- Symbols are used for identifiers, so identifiers (variable names) are case insensitive.
Useful Resources for Learning Scheme Online
1. R. Kent Dybvig. “The Scheme Programming Language, Second Edition” View
2. Chez Scheme User’s Guide View
3. PLT Scheme Guide by Matthew Flatt, Robert Bruce Findler View
4. Teach Yourself Scheme in Fixnum Days by Dorai Sitaram View
I think that those who want to start programming in Scheme, they can start with it more easily now. The resources that have been mentioned above are itself more then sufficient to learn Scheme.
Don’t forget to follow me on Twitter.
Any Questions? Liked the post? Post them below.





The program looks much more simpler than Python, What about the speed bro? Python is slower than Java and C., Is Scheme also slower or has better performance?
Scheme in good at speed. Dr. Scheme IDE for Scheme is performs well.
Good resources! Where can I find lots of practice problems with solutions going gradually from easy to difficult? thanks.
thanks for info
nice site, WHAT A CRAZY WORLD WE LIVE IN please use your position of influence to spread the truth about the Olympic 2012 false-flag terror attacks (huge LIES like 9/11 and 7/7) due to take place in london because US/UK/EU/Isreal is running out of excuses to attack Iran/Syria. Thanks mate. Appreciate it =)