HN Hall of Fame Weekly email

(An ((Even Better) Lisp) Interpreter (in Python))

norvig.com Books & learning Tutorials & guides Software engineering Candidate
Screenshot of norvig.com captured 2026-07-20
Page preview · captured 2026-07-20

The originally submitted URL now redirects to the address above. Updating the destination does not change the item’s HN history, Hall membership, or rank.

Resurfaced independently across 6 calendar years, with breakout response in 2 of them.

submissions
7
submitters
6
observed span
2010–2026
peak thread · 17 comments
140 pts
latest 20+ return · 2026-05-31
44 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

If you like this sort of thing and want to learn Haskell, consider looking at "Write Yourself a Scheme in 48 Hours"[1]. Of course, writing a Scheme interpreter in Scheme is also classic; SICP[2] is also worth perusing. [1]: http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_H... [2]: http://mitpress.mit.edu/sicp/

tikhonj·140-point thread·

Inexplicably, this conversation from earlier today (http://news.ycombinator.com/item?id=1745322) hasn't been linked, yet. If you're interested in programming, than I insist you read _Paradigms of Artificial-Intelligence Programming: Case Studies in Common Lisp_ yesterday. That's probably in my top five programming books EVER, and I've read a LOT of programming books. Your brain could gnaw on that sucker for months. Its pseudocode is in Lisp, but it's about real programming - don't write it off as just a lisp book…

I went through this in depth when I spent more time playing at writing a Lisp interpreter. I appreciate that these two features are crucial. 1. In the Python code of the interpreter, "Instead of making a recursive call that returns a value that is then immediately returned again by the caller, we can instead alter the value of x (and sometimes env) in the original invocation of eval(x, env). We are free to do that whenever the old value…

gee-see-c still needed to derive the duck type/nil punning out of the abstract non-sense.

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
2

100+ points or 50+ comments

Total points
322

reference only — not used in Hall rules or ranking

Total comments
29

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2010-10-01(How to Write a ((Better) Lisp) Interpreter (in Python))First breakoutshawndumas12110
2011-10-18(An ((Even Better) Lisp) Interpreter (in Python))Best threadcgopalan14017
2014-11-12(An ((Even Better) Lisp) Interpreter (in Python))dkarapetyan81
2017-11-27(An ((Even Better) Lisp) Interpreter (in Python))pmoriarty20
2023-08-24(An ((Even Better) Lisp) Interpreter (In Python))rcarmo30
2023-10-22(An ((Even Better) Lisp) Interpreter (In Python))rcarmo41
2026-05-31(An ((Even Better) Lisp) Interpreter (In Python))Latest 20+ point returnvismit2000440