It's funny how language features cluster. Racket has an implementation of CLOS, and it ships with a setf macro: https://docs.racket-lang.org/swindle/index.html
Related Posts
Today I learnt that Racket *intentionally* doesn't have a traditional REPL workflow. The authors were concerned about students not understanding the state between the current session and the code on disk.
(Arguably Jupyter has some of these features now.)
https://blog.racket-lang.org/2009/03/the-drscheme-repl-isnt-the-one-in-emacs.html
What are the most popular languages that have used an AST walker for their implementation?
I know Ruby used to do this, but there must be others.
(I'm interested in the lowest PL speed that users will tolerate if you have awesome features.)
An ad hoc, informally-specified, bug-ridden, slow implementation of half of a text adventure game -- or as I like to call it, a compiler.