ok, settling down with LiSP; SDFF has the philosophy that I want to pursue, but my desire keeps pushing me lower. AOCP is a bit too low, but LiSP is already moving nicely.
gotta say, the first regex example in SDFF doesn't really draw me in; gonna be hard to convince people there is a better way to use their regexps that is far more verbose.
@rml As someone without familiarity with most of these books, I wanted to thank You for this comparison! I'm personally working through AoCP[1], it makes me understand better which of LiSP[2] and SDFF[3] I might wanna go for when I'm done with AoCPv1. 😊 (Including the full titles and authors here for my own use later.)
[1]: Art of Computer Programming, by Donald Knuth
[2]: Lisp in Small Pieces, by Christian Queinnec
[3]: Software Design for Flexibility, by Hanson and Sussman
@yewscion welcome, thanks for the feedback/encouragement! yeah, SDFF is for "how to create the next generation of emacs-like extensible software", which is ultimately my longterm goal, but my addiction remains in the realm of interpreters and compilers, sending me ever "lower".
Have you read SICP already? It traverses the whole gamut, and I imagine it would be a nice supplement to TAOCPv1, getting to see many of the same optimization techniques applied at the higher level, and getting to design your own VM, perhaps including some of Knuth's assembly-level optimizations
@rml I have the texinfo version of SICP[1], but I have yet to begin reading it as I'm prioritizing books which seem more reference-friendly at the moment. Based on a quick skim, it seemed more focused on scheme practicum than general CS[3] theory (could be very wrong there, open to feedback!), whereas AoCP[2] seemed more general. Thoughts?
[1]: Structure and Interpretation of Computer Programs, by Sussmen and Abelson.
[2]: The Art of Computer Programming, by Donald Knuth.
[3]: Computer Science.
@yewscion Oh no, I would not say SICP is about scheme-specific; there is no single book I've encountered that covers a field as in depth as SICP does programming. You cover everything from optimization principals in engineering to (functional) data structures, to concurrency, streams and unification for exploiting non-determinism in the design of recursive descent parsers, and then you build a register virtual machine for Scheme, and a compiler.
I was exhausted by the ~4th chapter and still have not "properly" finished it (in terms of doing all or even most of the exercises, including the final compiler), but its one of the texts I return to several times a week. I'm always kind of reading it tbh.