Hacker News new | past | comments | ask | show | jobs | submit login

It's because Python more closely resembles pseudocode, making the examples in _AI: A Modern Approach_ more accessible to readers.

https://news.ycombinator.com/item?id=1803815




As a long time python user who recently got into s-exp languages (scheme to be specific), I realized the differences between python and scheme are more than just syntactic, in the following sense:

Programming in scheme forced me to think and code with a functional mindset. Python never forced me like that, even though you could stick to a functional subset of python (essentially forcing yourself).

I've also realized that a strictly functional mindset doesn't match well with CS curriculum. Case in point, there is a textbook called purely functional data structures, and I'm personally fully convinced that there is a whole class of functional algorithms that I have not explored, and these look nothing like the usual algorithms and data structures taught in a standard CS curriculum.

I also believe that SICP doesn't even scratch the surface of this different kind of thinking. SICP is small booklet of (dynamically typed) functional programming 101.

So if your standard CS graduate doesn't have a bleep of an idea about how to think with a functional mindset, and all of a sudden, has to program in a language which practically forces you to do so, they're going to have a bad time.

P.S.: You could develop an imperative framework on top of scheme (or lisp) and move on with your life, never having to think functionally. But that's a whole different story.


> I've also realized that a strictly functional mindset doesn't match well with CS curriculum. Case in point, there is a textbook called purely functional data structures, and I'm personally fully convinced that there is a whole class of functional algorithms that I have not explored, and these look nothing like the usual algorithms and data structures taught in a standard CS curriculum.

Schools are trying to strike a balance between theory and practice. A strictly functional mindset is, for one, a pretty limited way of viewing computing, but also disconnected from how CPUs actually work.


That depends pretty much on the university's teaching quality.

I was lucky to study in a very good one, so not only did I got exposed to all programming paradigms during those 5 years, I also got access to a rich library that exposed me to the real history of systems programming across several platforms all the way back to the late 50's, due to their rich book and conference proceedings collection.


If you only ever code with a functional mindset, you will probably write really inefficient programs that needlessly re-compute data. To program well on actual CPUs, on some level you need to be able to think about the assembly that your code gets compiled to


And I believe the reason of having the pseudocode Algol-like instead of writing ASTs (i.e. Lisp) is the same - making more accessible to readers. I wonder if he mentions this somewhere.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: