3 ms·
SICP doesn't introduce assignment until two hundred pages in.
by rudiger 15y ago
SICP doesn't introduce assignment until two hundred pages in.
- tel 15y agoAssignment isn't idiomatic in functional programming.
- dpritchett 15y agoThe functional programming is a side effect of the desire to teach computer science in a low-friction way. It's nice to not have to also teach Java along with your CS concepts. I know that when I teach myself anything it's best to focus on one new concept at a time. Scheme's light weight allows all but the CS concepts to fall away from the new coder's consideration.
- tel 15y agoThe functional programming is a side effect of the desire to teach computer science in a low-friction way. And why not code in a low-friction way even when not being taught? I wasn't intending to defend FP, but I think it's silly to think of assignment as a fundamental part of CS or the art of coding. It's just one tool.
- tikhonj 15y agoAnd, if I remember correctly, it never introduces loops. On the other hand, you learn about laziness, higher-order functions, deterministic and logic programming and how to implement the aforementioned, on top of a bunch of stuff you would learn in a Java class like recursion, OOP and networking. All this in the first four chapters; the fifth one introduces a low-level register based language but my class never got to it :( It is pretty cool. Ultimately, SICP just has drastically different (and I think better) priorities and topics than any course taught in Java or Python. I also suspect that a good SICP course moves even faster than the material here, simply because of the sheer density of big ideas in the book and the simplicity of Scheme.