| This is MUCH more than a 'Build Your Own Lisp'. To the point of almost being anything but. This is an amazing resource for getting started with learning C by making your own "programming language", independent of any Lisp conventions. For me, the most 'lispy' aspect of 'making your own lisp' is prebaked by the author with their using their own prebuilt parser library 'mpc'. (I was unable to find a link to the source in the book, so https://github.com/orangeduck/mpc ) I was unable to find any instance of 'car' or 'cdr' or 'caddar' and their like, which I feel is the real 'build your own lisp' epiphany. https://en.wikipedia.org/wiki/CAR_and_CDR The parser is so widely, and wildly, useful that it is independent of notation style, for instance, lisp's nearly ubiquitous 'polish notation'. (or its variants, for instance, 'cambridge polish notation') Perfect example: Under 'Chapter 9: Reading Expressions': > Don't Lisps use Cons cells? > Other Lisps have a slightly different definition of what an S-Expression is. In most other Lisps S-Expressions are defined inductively as either an atom such as a symbol of number, or two other S-Expressions joined, or cons, together. > This naturally leads to an implementation using linked lists, a different data structure to the one we are using. I choose to represent S-Expressions as a variable sized array in this book for the purposes of simplicity, but it is important to be aware that the official definition, and typical implementation are both subtly different. https://www.buildyourownlisp.com/chapter9_s_expressions#Read... This is an awesome educational resource. I think I would promote it more broadly than "Build Your Own Lisp". |