
If you've ever wondered how to build your own programming language or wanted to learn C but weren't sure where to start, this is the book for you. In under 1000 lines of code you'll start building your very own programming language, and in doing so learn how to program in C, one of the world's most important programming languages. Along the way we'll learn about the weird and wonderful nature of Lisps, the unique techniques behind function programming, the methods used to concisely solve problems, and the art of writing beautiful code. Build Your Own Lisp is a fun and creative journey through a fascinating area of computer science, and an essential read for any programmer, new or old!
Build Your Own Lisp, by Daniel Holden. This is an often cited classic with a lot of precious concepts explained in detail. It can be read for free online. But this is an opportunity to reward them for it. (Yes, I do own a purchased copy).
Ansible for DevOps by Jeff Geerling. Already mentioned by the sibling commenter.
There a lot more on my wishlist. All of them are competitively priced at 10 to 15$ each.
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".
Target audience? -- is journey a story in which 'instructions/learning' are actions used to get the reader to partake in story? aka humanities novel as wrapper to 70's wall of documentation volumes.
----
> Should I just focus on creating the content and making sure it’s useful/valuable and treat the book as just another method of presentation?
Is this for a 'Go Forth' TeD book of the month talk?
Any further clarification on type theory / category background? (cs, art, architecture, fonts, LaTex, ascii, utf, ...)
"The Power of Making Thinking Visible: Practices to Engage and Empower All Learners" by Ron Ritchhart (Author), Mark Church (Author)
"The Elements of Style" by William Strunk Jr. (Author), E. B. White (Author)
"Thinking with Type: Critical Guide for Designers, Writers, Editors, & Students Paperback" by Ellen Lupton
"Unleash the Power of Storytelling: Win Hearts, Change Minds, Get Results" by Rob Biesenbach
----
> ... book just a nice to have thing? Wide variety of catecorical/topi types.
Physicall book can be less expensive / less hassel than mangaging drmo on elecronic tablet/format only to have reference auto-erased. Dont have to worry about battery leaking/exploding. Thankfully, electronic formats allow for circumventing the imaginary wierd mechanics of trying to carry around wall's worth of pearls within multiple physical book encylopedia volumes without spending one's life working out at gym to be able to effortlessly carry/handle the encylopedia volume(s).
Categorical/Topi 'sea' type stuff:
"Alice in Wonderland" by Lewis Carol;
"Alice in Puzzle-Land: A Carrollian Tale for Children Under Eighty" by Raymond M. Smullyan
"To Mock a Mockingbird" by Raymond Smullyan;
"The New Turing Omnibus: Sixty-Six Excursions in Computer Science" by A.K. Dewdney
"Once Upon an Algorithm: How Stories Explain Computing" by Martin Erwig
"The Annotated Gödel: A Reader's Guide to his Classic Paper on Logic and Incompleteness Paperback" by Hal Prince (Author)
"Gödel, Escher, Bach: An Eternal Golden Braid" by Douglas R Hofstadter
"Information Theory: A Tutorial Introduction (2nd Edition)" by James V Stone
"An Introduction to Information Theory: Symbols, Signals and Noise" Subsequent Edition by John R. Pierce
"Coding the Matrix: Linear Algebra through Applications to Computer Science" by Philip N. Klein
"Land of Lisp: Learn to Program in Lisp, One Game at a Time!" by Conrad Barski M.D.
"Build Your Own Lisp" by Mr Daniel Holden
"LISP IS MY FAVORITE LANGUAGE IN LIFE FOUR MONTHS TO LEARN: Funny beginner's noteook to Learn LISP Programming Step-by-Step(PROGRAMMING LANGUAGE)"
----
For intermediate programmers, Build Your Own Redis[2] is a WIP book I am currently writing.
The title is "Build Your Own Lisp" and it is free to read [0].
You learn C and build your own Lisp dialect.