Hacker News new | past | comments | ask | show | jobs | submit login
A comment about Christian Queinnec's book Lisp in Small Pieces (1996) (lip6.fr)
55 points by vector_spaces on June 10, 2023 | hide | past | favorite | 12 comments



This book is gold!

Incidentally, there is a 2nd edition in French, but not (yet?!) in English.

Yes, it is hard, but reading is not a contest of "how many pages can I read per day". With this book, sometimes I just read one/day. Other times it's a negative number. Meaning, I need to go back a few pages. What matters most is the content, and this book has it. No pauses, no cheap humour, just pearls on every paragraph. That puts the burden on the reader. It's a book to be studied, not read.


It is hard because the prose is unreadable maybe because of a bad translation from French. The way sentences are constructed is Baroque to say the least.


I enjoy the way it is written, especially the lack of trying to make it fun and humorous. But I am a humanities sort who spends a good amount of time in literature where prose is a much more varied thing and you often have to think about the language itself, it is second nature to me. Likely the only programming book that I really enjoy reading and a welcome break from the rigid institutional style broken up with humor you often see in programming books.

Looking up the translator, she seems well respected in both technical writing and translation between French and English, so it may also be weird in French.


It's also weird in French, but I also found it really enjoyable


I think Queinnec is either big on literature or he was writing at a time before prescription and style guides took over academia in France (has it?). Looking at his website he makes no mention of literature or anything related beyond language general, but he does use the comma to for elaboration and context, not just to delimit inline lists. Looking at Lisp In Small Pieces I can't help but notice a strong resemblance to Henry James and wonder if his passion for language extends beyond programming. I also notice some parallels between his language use with lisp itself, but I am no where near good enough with lisp to be certain, his book is still well beyond me but I do enjoy it and the challenge it presents.


I remember Norvig comments on the book were very appraising (1) since he gave it 5 stars.

The code of this book is here (3)

I read it some twenty years ago. The terminology was new to me, something like fexpresion, nexpresion, ..., the difference being when and how the arguments are evaluated. At the same time I was reading macsima code, to learn how to develop a mathematical symbolic system. The book is mainly about the function eval, closures, and how to construct compiler. In a way is the reverse of 'practical common lisp'. It doesn't discuss any concrete implementation of Lisp, gc, servers, sockets or ffi. It is deep in how evaluation is done in Lisp but lacks a lot of other topics.

  Perhaps a more practical approach to construct an optimizer compiler in Lisp is to study the code of sbcl, how it for example propagate constraints and declarations to optimize the code. Perhaps something like a JIT compiler (like hava hotspot)  added to sbcl could be interesting.  Also the code of Racket   would be another source of interesting ideas, for example (2). Another idea is to study the code of Lush (by Yann LeCun and Leon Bottou)
(1) https://hackernewsbooks.com/book/lisp-in-small-pieces/dbb8b5...

(2) https://blog.racket-lang.org/2021/01/racket-status.html

(3) https://pages.lip6.fr/Christian.Queinnec/Books/LiSP-2ndEditi...


Interesting, I liked l.i.s.p gradual exploration of various traits and the various reimplementations. But that's right it avoids many low level bits. It seems a cultural trait, since McCarthy's paper was also a virtual metacircular description.

About low level interfaces, there's another french book from back in the days:

La programmation applicative : de LISP à la machine en passant par le lambda-calcul by Emmanuel Saint-James (also a colleague of C.Queinnec) (https://www.amazon.com/programmation-applicative-Emmanuel-Sa...)

Which, IIRC talks about IO at least (maybe gc, i forgot).


Queinnec's attitude was that ALL forms of scoping are useful. In the 80s there was a class struggle between Lexical scoping, which prevailed, and everything else, which Q. detailed.


I'm definitely curious about the everything else. I will into this book.


Related. Others?

Lisp in Small Pieces: Table of Contents and Code - https://news.ycombinator.com/item?id=8600048 - Nov 2014 (40 comments)

Comments over the years: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...


I just looked on ABEBooks - all of the copies were around $100 (used or new POD)! Too bad - it sounds interesting, but not at the moment $100 interesting.


I was able to get that book once through an interlibrary loan

It is bonkers, for the reasons described by Dr. Wilson in this comment




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: