---
product_id: 4850860
title: "Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science)"
price: "£55.19"
currency: GBP
in_stock: true
reviews_count: 13
url: https://www.desertcart.co.uk/products/4850860-structure-and-interpretation-of-computer-programs-2nd-edition-mit-electrical
store_origin: GB
region: United Kingdom
---

# Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science)

**Price:** £55.19
**Availability:** ✅ In Stock

## Quick Answers

- **What is this?** Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science)
- **How much does it cost?** £55.19 with free shipping
- **Is it available?** Yes, in stock and ready to ship
- **Where can I buy it?** [www.desertcart.co.uk](https://www.desertcart.co.uk/products/4850860-structure-and-interpretation-of-computer-programs-2nd-edition-mit-electrical)

## Best For

- Customers looking for quality international products

## Why This Product

- Free international shipping included
- Worldwide delivery with tracking
- 15-day hassle-free returns

## Description

Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published. A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises. In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.

Review: The Art of Generalization.. TOUGH but possibly worth it - Inductive reasoning aims at simplifying functions just enough to make them general. Simple does NOT equal easy! When Functional Programming (and its predecessors-- combinatory logic (1925) and lambda calculus (1930)) were first invented, they were aimed at clarifying mathematical logic. This "holding variables constant" or binding or eliminating them for "pure" (mathematical) functions, has been extended to Functional Programming, initially to better understand what programming is in general, then to evaluate mathematical functions while avoiding some of the complicating factors (side effects) of imperative/procedural programming. Because of this, when you think of a function in imperative, you immediately think of variables, and such functions can very easily morph both at the algo/function f(x)-> g(x) level, and at the x (variable level) itself (data changing as you execute). In functional programming (the subject of this text), a function is, well, a MATH function! So, evolving from math, and consisting OF math, it would be a little surprising to criticize the fact that this IS A MATH BOOK. (Sorry, it is). On the other hand, holding those variables constant and looking directly at functional mappings (particularly recursion) can "AHA" us into seeing how computers and programming "really" work without the complications of heavy imperative morphs. After C# 3 and in some Perl, these tried and true oops also have some functional classes now, so we are moving toward a more hybrid world, making this book FAR from out of date, even though it is "temporally" older. As well, some of your favorite math, research and engineering programs (Maple, Mathematica and R, for example) have numerous functional features. The old FP standbys are, of course, Lisp, Scheme, Hope, Haskell, Clojure, Racket, Hope, Scala, F#, etc. which you probably think of more as "math" programs. But, hopefully not a surprise, SQL itself strives at far less mutable value structures than imperative, and thus tilts toward functional also. FP, to be very honest, WAS designed to teach and understand programming (at compile/interpret levels, not necessarily algorithms, computational complexity or even advanced data structures), not originally create useful programs! "R" and many others have proved that to be aiming low, and the newer FP books do of course get deeply into more recent data structures. Thus, the reason for so many negative reviews! This is NOT your usual "how to program" or even "what are programs" text-- it really is about linking mathematics and computer science at both high and deep levels. So, if you aren't really up on math (from basics like sets and real number mappings all the way up to Lie Algebras and tensors), you might get lost with this rare gem of a book. On the other hand, the pain of working through it will give you a perspective on computer science that will forever change your point of view. Even if you code all day like I do, you'll LOVE taking this journey both to the 30,000 foot level, as well as down to the real action between compiling and interpreting-- via the MATHEMATICS of "pure" functions, minus the confusion of changing states, variables and data we play with every day in the imperative version of functions. Don't believe that this "simplification" makes things easier to get-- unless you know functions from a deep math view, this will be a tough climb. But... worth it if you're willing to do the work! Most other books on "discrete math" are really UI catch ups for all the computer/math that's now been removed from High School curricula, making this one of the few "real deals" that are at a bright, high undergrad level, NOT catch up. By removing calculus from HS requirements, we're teaching 2,500 year old math, and adding the basics brings us up to 1666 or so. This book rapidly catapults our function math vs. function computing into the new century! Highly recommended IF you're not turned off by advanced math functions, mappings, properties, etc. The next time someone asks how a special or CAS function can run faster interpreted than compiled, you'll have a MUCH different answer! And of course the heart of all dynamical systems today includes differential equations, which are essentially recursive function processing. BEFORE AND AFTER: If you're not "quite" ready for this level of FP and Lisp, you can get a great, inexpensive backgrounder with Dover's An Introduction to Functional Programming Through Lambda Calculus (Dover Books on Mathematics) . Mathwise, many Dover books on the keyword recursive functions will help. For a freebie intro, Graham's famous "on lisp" is now available as a free download, and is a bit above the level of this book. For the "greatest intellectual programming book ever written" (far beyond the level of this book, covering advanced Lisp macros, closures, etc.), check out (AFTER reading this): Let Over Lambda . Only 1% of programmers really understand Common Lisp, and only 1% of those would tackle the unhygenic macros in Let Over-- yet it is so intellectualy challenging that coders and engineers at all levels are astonished when they read it. Shows how high the bar can really get! (Lisp tends to do that, right?). IS IT DATED? In answer to a bunch of emailers asking that, NO-- the principles of functional are still the same, even if Common Lisp and Scheme have been updated. In fact, today, combinations of functional, imperative and logical are happening more and more (called mixed paradigm programming). However, if you want a GREAT, VERY RECENT book as both a warm up and an update to Abelson, try this little beauty by the same author as the Little Schemer: Realm of Racket: Learn to Program, One Game at a Time! . It will fill in where Abelson is a little out of date AND prepare you for his depth. WARNING: PLEASE BE SURE to get the 2nd Edition of Abelson, he updated it significantly for the relationship between time and memory, a relationship that is even today undergoing a LOT of research in many fields.
Review: Computer Science...Art? - You need it, too. I won't pretend to have more useful insight into the art and craft of programming, or into SICP's relationship to it, than Paul Graham or Peter Norvig- if you want to know which reviews to trust, look these cats up. The discussion in the reviews usually concludes that this is the book that separates the computer scientists from the mere programmers. There is a definite logic to this. If you want a book that will have you churning out code that does something helpful in half an hour(because you don't think the several ways to calculate the Fibonacci Sequence are helpful), by all means, pick up Learning Perl or just read the Python documentation. They are great tools. If, however, you want to tool up on problem-solving technique a whole level or three higher up, SICP is for you. The Wizard Book is about learning to think better. Here is where I diverge from the idea that this book is for only computer scientists, though. I am an artist, graduated from college with a BA in art, going to graduate school for an MFA. SICP is one of the books that changed how I work and think. It will make you a better programmer if you read (and reread (and reread)) it in the same way that learning Latin will make you understand language itself in a whole new way. I use ideas from SICP constantly, to design software, but also to design staircases. The book is slow-going, no doubt about it, but you'll have a whole new mental toolset at the end. One caveat- this book is freely distributed in its entirety on MIT's website. I still bought a copy, though: who knows how long this internet thing will last, but SICP is going to be relevant forever.

## Features

- New
- Mint Condition
- Dispatch same day for order received before 12 noon
- Guaranteed packaging
- No quibbles returns

## Technical Specifications

| Specification | Value |
|---------------|-------|
| Best Sellers Rank | #34,583 in Books ( See Top 100 in Books ) #1 in Compiler Design #1 in Software Programming Compilers #24 in Software Development (Books) |
| Customer Reviews | 4.7 out of 5 stars 728 Reviews |

## Images

![Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science) - Image 1](https://m.media-amazon.com/images/I/71BBXQnykuL.jpg)

## Customer Reviews

### ⭐⭐⭐⭐⭐ The Art of Generalization.. TOUGH but possibly worth it
*by P***Z on July 11, 2013*

Inductive reasoning aims at simplifying functions just enough to make them general. Simple does NOT equal easy! When Functional Programming (and its predecessors-- combinatory logic (1925) and lambda calculus (1930)) were first invented, they were aimed at clarifying mathematical logic. This "holding variables constant" or binding or eliminating them for "pure" (mathematical) functions, has been extended to Functional Programming, initially to better understand what programming is in general, then to evaluate mathematical functions while avoiding some of the complicating factors (side effects) of imperative/procedural programming. Because of this, when you think of a function in imperative, you immediately think of variables, and such functions can very easily morph both at the algo/function f(x)-> g(x) level, and at the x (variable level) itself (data changing as you execute). In functional programming (the subject of this text), a function is, well, a MATH function! So, evolving from math, and consisting OF math, it would be a little surprising to criticize the fact that this IS A MATH BOOK. (Sorry, it is). On the other hand, holding those variables constant and looking directly at functional mappings (particularly recursion) can "AHA" us into seeing how computers and programming "really" work without the complications of heavy imperative morphs. After C# 3 and in some Perl, these tried and true oops also have some functional classes now, so we are moving toward a more hybrid world, making this book FAR from out of date, even though it is "temporally" older. As well, some of your favorite math, research and engineering programs (Maple, Mathematica and R, for example) have numerous functional features. The old FP standbys are, of course, Lisp, Scheme, Hope, Haskell, Clojure, Racket, Hope, Scala, F#, etc. which you probably think of more as "math" programs. But, hopefully not a surprise, SQL itself strives at far less mutable value structures than imperative, and thus tilts toward functional also. FP, to be very honest, WAS designed to teach and understand programming (at compile/interpret levels, not necessarily algorithms, computational complexity or even advanced data structures), not originally create useful programs! "R" and many others have proved that to be aiming low, and the newer FP books do of course get deeply into more recent data structures. Thus, the reason for so many negative reviews! This is NOT your usual "how to program" or even "what are programs" text-- it really is about linking mathematics and computer science at both high and deep levels. So, if you aren't really up on math (from basics like sets and real number mappings all the way up to Lie Algebras and tensors), you might get lost with this rare gem of a book. On the other hand, the pain of working through it will give you a perspective on computer science that will forever change your point of view. Even if you code all day like I do, you'll LOVE taking this journey both to the 30,000 foot level, as well as down to the real action between compiling and interpreting-- via the MATHEMATICS of "pure" functions, minus the confusion of changing states, variables and data we play with every day in the imperative version of functions. Don't believe that this "simplification" makes things easier to get-- unless you know functions from a deep math view, this will be a tough climb. But... worth it if you're willing to do the work! Most other books on "discrete math" are really UI catch ups for all the computer/math that's now been removed from High School curricula, making this one of the few "real deals" that are at a bright, high undergrad level, NOT catch up. By removing calculus from HS requirements, we're teaching 2,500 year old math, and adding the basics brings us up to 1666 or so. This book rapidly catapults our function math vs. function computing into the new century! Highly recommended IF you're not turned off by advanced math functions, mappings, properties, etc. The next time someone asks how a special or CAS function can run faster interpreted than compiled, you'll have a MUCH different answer! And of course the heart of all dynamical systems today includes differential equations, which are essentially recursive function processing. BEFORE AND AFTER: If you're not "quite" ready for this level of FP and Lisp, you can get a great, inexpensive backgrounder with Dover's An Introduction to Functional Programming Through Lambda Calculus (Dover Books on Mathematics) . Mathwise, many Dover books on the keyword recursive functions will help. For a freebie intro, Graham's famous "on lisp" is now available as a free download, and is a bit above the level of this book. For the "greatest intellectual programming book ever written" (far beyond the level of this book, covering advanced Lisp macros, closures, etc.), check out (AFTER reading this): Let Over Lambda . Only 1% of programmers really understand Common Lisp, and only 1% of those would tackle the unhygenic macros in Let Over-- yet it is so intellectualy challenging that coders and engineers at all levels are astonished when they read it. Shows how high the bar can really get! (Lisp tends to do that, right?). IS IT DATED? In answer to a bunch of emailers asking that, NO-- the principles of functional are still the same, even if Common Lisp and Scheme have been updated. In fact, today, combinations of functional, imperative and logical are happening more and more (called mixed paradigm programming). However, if you want a GREAT, VERY RECENT book as both a warm up and an update to Abelson, try this little beauty by the same author as the Little Schemer: Realm of Racket: Learn to Program, One Game at a Time! . It will fill in where Abelson is a little out of date AND prepare you for his depth. WARNING: PLEASE BE SURE to get the 2nd Edition of Abelson, he updated it significantly for the relationship between time and memory, a relationship that is even today undergoing a LOT of research in many fields.

### ⭐⭐⭐⭐⭐ Computer Science...Art?
*by B***N on January 27, 2009*

You need it, too. I won't pretend to have more useful insight into the art and craft of programming, or into SICP's relationship to it, than Paul Graham or Peter Norvig- if you want to know which reviews to trust, look these cats up. The discussion in the reviews usually concludes that this is the book that separates the computer scientists from the mere programmers. There is a definite logic to this. If you want a book that will have you churning out code that does something helpful in half an hour(because you don't think the several ways to calculate the Fibonacci Sequence are helpful), by all means, pick up Learning Perl or just read the Python documentation. They are great tools. If, however, you want to tool up on problem-solving technique a whole level or three higher up, SICP is for you. The Wizard Book is about learning to think better. Here is where I diverge from the idea that this book is for only computer scientists, though. I am an artist, graduated from college with a BA in art, going to graduate school for an MFA. SICP is one of the books that changed how I work and think. It will make you a better programmer if you read (and reread (and reread)) it in the same way that learning Latin will make you understand language itself in a whole new way. I use ideas from SICP constantly, to design software, but also to design staircases. The book is slow-going, no doubt about it, but you'll have a whole new mental toolset at the end. One caveat- this book is freely distributed in its entirety on MIT's website. I still bought a copy, though: who knows how long this internet thing will last, but SICP is going to be relevant forever.

### ⭐⭐⭐⭐⭐ The best programming book ever, if you're a certain kind of person
*by J***A on August 26, 2014*

This was the book that made me want to be a computer programmer. When I read it, I had no knowledge of programming beyond a little Pascal, and rudiments of C. It had a massive impact on me. It consumed me, to the point where I had difficulty finishing assignments for my classes (I did not study CS as an undergrad). What the book does is give you a vocabulary and knowledge about programming that is hard to find anywhere else. The text, the examples and exercises, have a mathematical flavor, and that may turn off many potential readers, who would rather gadget around than find elegant solutions for the 8-queens puzzle or efficient algorithms to compute Fibonacci numbers. I've lent this book to several friends who were interested in learning to program, and in all cases they have returned it to me, saying it went over their heads. There seem to be two camps in computer programming: - the gadgeteers, who want to hook devices together and make them do fun things - the scientists, who appreciate computing as a medium in itself This book is for the second type.

## Frequently Bought Together

- Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science)
- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
- Operating Systems: Three Easy Pieces

---

## Why Shop on Desertcart?

- 🛒 **Trusted by 1.3+ Million Shoppers** — Serving international shoppers since 2016
- 🌍 **Shop Globally** — Access 737+ million products across 21 categories
- 💰 **No Hidden Fees** — All customs, duties, and taxes included in the price
- 🔄 **15-Day Free Returns** — Hassle-free returns (30 days for PRO members)
- 🔒 **Secure Payments** — Trusted payment options with buyer protection
- ⭐ **TrustPilot Rated 4.5/5** — Based on 8,000+ happy customer reviews

**Shop now:** [https://www.desertcart.co.uk/products/4850860-structure-and-interpretation-of-computer-programs-2nd-edition-mit-electrical](https://www.desertcart.co.uk/products/4850860-structure-and-interpretation-of-computer-programs-2nd-edition-mit-electrical)

---

*Product available on Desertcart United Kingdom*
*Store origin: GB*
*Last updated: 2026-05-17*