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.