Convert from Racket
Racket is a descendant of Scheme that extends its features and provides an extensive framework for creating programming languages through its robust macro system. It is often used in educational settings for teaching computer science concepts. Racket supports various programming paradigms, including functional and object-oriented programming, and is used for developing domain-specific languages, conducting language research, and building applications.