Is SICP really necessary if I already know loops and basic stuff? I used MATLAB as a glorified calculator at university as a non CS related STEM major.
I'm on chapter 3 and I find it boring. The concepts aren't hard but it is a chore working with cons, car, cdr with pairs and lists (and append, cons, (list x y) all existing). I don't understand why cons, car, and cdr weren't completely ignored as soon as lists were introduced. Maybe going fully though any textbook was always going to be boring but SICP is structured as if you should do that.
I wouldn't say I'm a total pleb. I just wonder whether studying more maths in my free time and codemonkeying would be better. I have never actually programmed anything in "the real world".
How do you get the first element of a list without car? How do you iterate through a list recursively without cdr?
>>61541407
I know you use car. But why doesn't the book introduce that stuff and then say, "here's a few simplifying functions which we'll use for the rest of the book to make things easier"
Like python's list[index] or list[start] or list[end]
That's abstraction
>>61541586
Right, but that's what I'm asking you. What such abstraction is there in scheme? The stuff you listed, append and list, don't take care of this problem. The reason they introduce them later and make you work with cons is to beat the concept of Head/Tail lists into you because it's hugely important to understanding how scheme processes lists.
>>61541618
Yeah of course. You learn car cdr but why not simplify stuff later?
I'm at the part in chapter 3 with tables (haven't touched the book or done any programming for over a month) and it's honestly a joke how over complicated it is.
How do I view tables in python? Lists of lists.
Why the hell am I still cdr-ing through stuff at this stage?
>>61541695
The book uses a simple language to drive home the concepts. It's not about learning Scheme, it's about using it to teach the material. There are lots of modern scheme dialects with tons of nice abstractions. See Racket for example.