Everything Is Just Functions: 1 week with David Beazley and SICP
Notion / Site and UX Issues
- Many complain the Notion-hosted article is slow (multi-second render, heavy JS, large heap, many third-party domains).
- Keyboard navigation is unreliable; scroll behavior and mobile support are broken for some.
- Some use archive sites to “bake” the JS into plain HTML.
- Others argue HN guidelines discourage focusing on such tangential annoyances, but the frustration is widespread.
SICP, Languages, and Education
- Several discuss the JavaScript edition of SICP. Many prefer Scheme’s minimal, regular syntax and its timeless, self-contained nature.
- Some argue students overly seek “job-ready” languages (JS, Python) and resist theoretical content; others say CS degrees should remain theory-heavy despite market pressures and credentialism.
- There is nostalgia for classic SICP-based courses and similar curricula; people recommend comparison editions and other SICP-derived resources.
“Everything Is Functions” and Encodings
- Commenters explore Church/Scott encodings, monads, and representing data (e.g., Maybe) and state via pure functions.
- Fans find these encodings elegant and educational for understanding control flow and state; critics find them unreadable, cognitively heavy, and unsuitable for production.
- Some note you need inductive data types (not only Church encodings) for theorem proving and for direct reasoning about equality/inequality.
Abstractions: What vs How, Functions vs Relations
- One line of discussion advocates focusing on “what” (intent) over “how” (implementation), citing SQL and declarative styles as partial examples but noting their practical limits.
- Others argue “everything is just X” (functions, objects, files, databases, strings, Turing machines, etc.) is useful as a teaching simplification but dangerous when overextended.
- Some contend relations are more fundamental than functions; relational and logic programming (e.g., Prolog, Datalog-like ideas) are presented as powerful but underused.
Functional Programming, Python, and Practice
- Debate over why functional languages haven’t “won” despite theoretical elegance; CPUs are not inherently functional, and real systems involve side effects, resources, and non-determinism.
- Python is praised as accessible and pragmatic but criticized as a poor fit for SICP’s style (weak FP support, no TCO, awkward lambdas, code-as-data harder than in Lisps).
- Others argue functional ideas can still be expressed reasonably in Python and have influenced mainstream languages broadly.