https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_...
https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_...
I'm a big fan of the approach taking in Programming Languages: Application and Interpretation (PLAI). The Brown course from 2012 has video lectures available [2]. This one uses what is very close to Racket as the implementation language. It's typed, and called plai-typed.
The course these days uses the later chapters of Programming and Programming Languages (PAPL). This uses a new language, Pyret [3]. It's a bit more clear, due to the implementation language and source language having obviously different syntax, compared to plai-typed vs. the s-expression based language implemented.
[0] https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-26.htm...
[1] http://cs.brown.edu/courses/cs173/2012/book/