|
|
|
|
|
by gwern
5433 days ago
|
|
"Stop. Take a deep breath. Think about all that you have just discovered (or if you have already discovered it all, reflect on how awesome it is). By page 45 of SICP, you will have; Translated recursive definitions into iterative processes
Examined the differences in the space requirements of various processes
Used tail-recursion to implement efficient iterative procedures
Seen that iteration can be thought of as a special case of recursion
Realized that iterative processes can be restarted easily by capturing and restoring their state variables
Given thought to complexity, optimization, and state transition theory
Been encouraged to explore creative solutions to challenging problems
Learned the basic syntax and semantics of Scheme
Observed a quasi-religious experience
What will you have accomplished by page 45 of Dive Into Python? Don’t hold your breath. I’ve looked into it. You’ll be learning how to use the and-or “trick” to make simple programs difficult to read. Soon afterwards you’ll be exposed to Python’s intentionally crippled lambda statement.""Scheme is considerably less complicated and idiosyncratic than Python. It’s simplicity and consistency have immense pedagogical value. It might take you anywhere from a day to a month to pick up the basics of Python. Scheme, on the other hand, has virtually no syntax. It’s definitely possible to get a solid grasp of its fundamentals in less than an hour. Python can be used to accomplish many of the same things as Scheme. Practically anything you can do in Scheme you can do in Python, and formally speaking, the two languages are equivalent. However, until a Python textbook emerges that surpasses SICP in teaching the core elements of programming, we should stick with Scheme." |
|
I'm entirely willing to admit that SICP is better than Dive Into Python (well, I would be if I had a copy of it around so that I could verify this). I'm just saying that the article does little to convince me of that (and quoting parts of it at me does even less to convince me - if you think that I didn't read it thoroughly enough, just come out and say so).