I wrote my first Lisp in C++
github.com
github.com
One of my nits was "he started using nconc without defining it" and pretty soon he is showing how much you can struggle with using destructive operators in functions, macros, etc. Which made me think: if he was using Clojure he wouldn't be struggling with nconc!
Paul Graham himself proved with arc that you can write another Lisp in C and have it be a great foundation for a single application without doing anything really interesting in a wider sense (See also emacs lisp)