Not convinced metacircular interpreters are very helpful to for teaching. Implementing an interpreter in a different lang is more explicit.
miniblog.
Related Posts
I'm implementing an interpreter, and wondering how often I should check for interruptions (e.g. Ctrl-C).
I don't want to spend too much CPU time checking whether I've been interrupted, but I also want slow programs to stop promptly. It's tricky.
The Bitter Lesson: how implementing generic search and scaling compute outperforms custom logic in many situations:
Implementing type checking as another interpreter, with short, accessible examples: