Lisp from Nothing
t3x.org
t3x.org
I have utterly, most thoroughly enjoyed everything you have produced. Imperative, functional, low-level, high-level it is all excellent.
If having a class isn't your thing, would you consider taking requests for books?
I guess you mean online? I have thought about real-life, but interest in the topics I care about is ... not so wide-spread.
Online? I have heard about such things but have no idea what it would look like. I guess there would be a lot of technology involved, and I do not get along well with tech. :)
> I have utterly, most thoroughly enjoyed everything you have produced. Imperative, functional, low-level, high-level it is all excellent.
Thank you! This is good to hear!
> would you consider taking requests for books?
I am afraid not. You may make suggestions, though, and if they coincide with my plans, they might tip the scales.
An example: https://www.xorpd.net/pages/x86_adventures.html
[0] http://galileo.phys.virginia.edu/classes/551.jvn.fall01/ftra...
[1] "Scientific Forth" (Julian V. Noble, 1992)
[2] "Designing and Programming Personal Expert Systems" (Carl Townsend & Dennis Feucht, TAB Books, 1986)
I have mused about a related question since I got my first computer eons ago. It had only a machine code monitor (yes, a though start to learning what a computer was). It does seem some kind of Forth might have been the good first step on the path to high-level languages (like https://github.com/uho/preForth) but it's sure not the only way.
Inspired by a previous hackernews comment-thread, I don't use a return-stack. So while I do have support for `if` it is implemented in a hardwired fashion.
I'd love to spend the time to do it properly, but I suspect rabbit-hole wouldn't even begin to describe the amount of time I'd sink into it.
In every major system one can now hide upper case conventions, but they too often default to old man shouting "GET OFF MY LAWN". And of course, those parentheses. One can easily represent trees by a notation that does away with most parentheses, but instead they've become a loyalty test.
At $20 or even $30 I would have bought the PDF for this book, to keep my library complete, to support all Lisp efforts. $40 made me think. This is a pure optimization problem; one should roughly want to maximize revenue, but favoring number of copies sold for the side benefits. I doubt that $40 achieves that maximum.
The caps point is interesting to me. I can't think of a good reason why caps should be shouting, but I definitely agree with it. Hilarious to remember back when mixed case was not the norm. (Also, awkward to work in languages where symbols are case sensitive. Worse when they are case significant.)
I'm curious on the tree representations you mean. Most make some use of whitespace, that I have seen. But they lose the portability of the representation that I have with easy copy/paste to other environments. (To and from chats, emails, etc.)
I guess OP meant symbolic expressions (LISP expressions) in general, which can be viewed as trees. E.g.:
(FOO BAR . BAZ)
would be O
/ \
FOO O
/ \
BAR BAZEdit: I see you made the same point in another post. I'm calling that portability of the code, though not sure that is the best term.
I enjoyed the return to typing in upper case very much! Ancient LISP in particular is nice to type, because there are only letters and the occasional dash, asterisk and parenthesis. All the special characters in modern languages really hurt my fingers!
>One can easily represent trees by a notation that does away with most parentheses, but instead they've become a loyalty test.
But can you copy or delete an expression from that other representation by paren-matching in your editor? To me (and others I guess) this was not much of an initiation ritual. I fell in love with parentheses on first sight.
> $40 made me think.
I get that! And to be honest, writing becomes more painful as I grow older, so I adjusted the price a bit to compensate for that. So far the sales numbers suggest that people are willing to spend the money.
BTW, the PDF and paperback generate the same royalties (as with all of my books). The price difference is the production cost of the physical book. So you pay the same for the content in either case.
The evolution of to Common Lisp had to deal with this. The solution (which works well) is that the default mode of the Lisp reader converts symbol names to upper case, unless they are escaped. So, the common case is that symbols are lower case in source files, but are upper case internally, and typically are printed in upper case (that can be tweaked if desired.)
But we've only got uppercase case-insensitive, with flags for inverse (an ugly hack) and case-sensitive. This way you can call C or Java functions, but internally it's all case inversed. And still broken in some lisps