Live data from Hacker News

Let over Lambda – Common Lisp Book (2008)

letoverlambda.com

51–60 of 99 posts

Re: Let over Lambda – Common Lisp Book (2008)

#51

I enjoyed this book. I personally did not find it condescending. Additionally, the implementation of a Forth interpreter in this book is the best introduction to Forth I've seen (even after years spent playing with Forth and reading one or two books on Forth). But I don't recommend this book as an introduction to (Common) Lisp. I recommend this order: 1. Practical Common Lisp 2. On Lisp (kind of a big jump, so maybe…

Good list. Practical Common Lisp deserves that spot at the top. It's very approachable and provides examples of all those features you keep hearing good things about. I remember running through the spam filter chapter and finding an email that SpamAssassin misclassified about four years prior.

I think my favorite Forth introduction comes at it from the other direction, though: https://github.com/nornagon/jonesforth/blob/master/jonesfort...

Re: Let over Lambda – Common Lisp Book (2008)

#52
post #51

I enjoyed this book. I personally did not find it condescending. Additionally, the implementation of a Forth interpreter in this book is the best introduction to Forth I've seen (even after years spent playing with Forth and reading one or two books on Forth). But I don't recommend this book as an introduction to (Common) Lisp. I recommend this order: 1. Practical Common Lisp 2. On Lisp (kind of a big jump, so maybe…

Good list. Practical Common Lisp deserves that spot at the top. It's very approachable and provides examples of all those features you keep hearing good things about. I remember running through the spam filter chapter and finding an email that SpamAssassin misclassified about four years prior. I think my favorite Forth introduction comes at it from the other direction, though: https://github.com/nornagon/jonesforth/b…

That is a really impressive guide.

Re: Let over Lambda – Common Lisp Book (2008)

#53

Earlier quoted context omitted.

https://letoverlambda.com/index.cl/guest/chap6.html Yeah, the sixth chapter sure bashes on Scheme a lot. :/

I always wonder if Common Lispers who bash Scheme know that Guy Steele (who also is the chairman of the Common Lisp standards committee) was the co-creator of Scheme.

Well he also designed Java, so...

Re: Let over Lambda – Common Lisp Book (2008)

#54

Earlier quoted context omitted.

https://letoverlambda.com/index.cl/guest/chap6.html Yeah, the sixth chapter sure bashes on Scheme a lot. :/

I always wonder if Common Lispers who bash Scheme know that Guy Steele (who also is the chairman of the Common Lisp standards committee) was the co-creator of Scheme.

I can't speak for others, but I know that, and I think that it is consistent, rather than inconsistent, with my points 1) that Scheme is fine as an academic language and 2) Common Lisp is preferable for real programs.

Scheme's simplicity is awesome if you're implementing it; it's awesome if you're learning it; it's not so awesome if you're trying to actually use it. As LoL notes, it's dumb to throw away information in conditionals. As LoL also notes, hygienic macros are toys and DEFMACRO is generally what you really want. I'll add that having only a single namespace for variables, classes, functions, types, packages & everything else means that you end up having to be extremely verbose: foo, fooClass, fooFunc, fooType, fooPackage. call/cc is incredibly cool & powerful, but also really hurts efficiency in a way that I don't think is acceptable in a production system (it's fine, of course, in a teaching language, because the experience of understanding it is really useful). dynamic-wind is broken compared to UNWIND-PROTECT.

And on & on & on.

Steele also wrote the Java spec, and he wasn't wrong when he said 'We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp,' but I don't think in 2019 anyone thinks that his involvement with Java means it is anywhere near as good, powerful or acceptable a language as Lisp.

Re: Let over Lambda – Common Lisp Book (2008)

#55
Interesting, possibly flawed analogy: The Build Your Own Lisp book explains how, and the LoL book explains why. Build your own lisp book is the natural pairing for LoL, despite many people claiming it goes best with Seibel's common lisp book or whatever.

Seibel's book is good, don't get me wrong; I just don't think its the proper pairing in the sense of culinary arts putting together a plate of well paired books.

The common lisp people and the clojure people fight viciously as only siblings can; this will infuriate those in the common lisp tribe but the ideal introductory lisp book in the general sense of the language is probably not Seibel's book its probably the comedic Clojure for the Brave and True. Not aware of anything quite like that, for common lisp.

Re: Let over Lambda – Common Lisp Book (2008)

#56
post #16
post #15

Earlier quoted context omitted.

Common Lisp was finalized in the 90s. And it's not its fault that the other languages haven't caught up yet.

Still, its a trip to hell to maintain any lisp codebase -- especially if it contains macros. I think it is actively hostile to collaborative programming, and that is a structural problem where there is no remedy but obscure programming patterns (which are amplifying these problems in some instances). With that in mind -- boasting about 'the most advanced language' is a bit of a stretch -- to say the least...

Well, keep in mind that "macros" in Lisp are really compile-time computing.

In Lisp you have the same language at your disposal at runtime and at compile time. In C/C++ you have the preprocessor, which is a really lousy language. And in C++ templates. Remember the "template metaprogramming" hype about 10 years ago? How far did they go? Compute some prime numbers? I mean C++ templates are a compile-time language, but they are a language that has only one type - types and no real iterations over collection types. Wait, they have no collection types. The one and only type is types.

So, "macros" in Lisp are really a new capability, and they can make code very dense. But think about the alternative - rolling out all this code with generating it at compile time from a single point of origin. That is the real maintenance nightmare. Every time you make an assumption during programming you want to contain that assumption in a single place. So that when the assumption changes later (otherwise known as "always" when other people are involved in telling you what the program is supposed to do in the end) you change a single place, and the rest of the dependent code is generated at compile time - using the full programming language you chose.

I started a web series on compile-time computing. Didn't get as far as I wished for now, but here is some: https://medium.com/@MartinCracauer/a-gentle-introduction-to-...

I actually plan to use some of the chemical code I write (for the above mentioned Cando/Clasp chemical package) to make more parts of that series.

Re: Let over Lambda – Common Lisp Book (2008)

#57

Earlier quoted context omitted.

https://letoverlambda.com/index.cl/guest/chap6.html Yeah, the sixth chapter sure bashes on Scheme a lot. :/

I always wonder if Common Lispers who bash Scheme know that Guy Steele (who also is the chairman of the Common Lisp standards committee) was the co-creator of Scheme.

He was also heavily involved in Java.

"We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp." -Guy Steele

https://news.ycombinator.com/item?id=2323963

Re: Let over Lambda – Common Lisp Book (2008)

#58

Earlier quoted context omitted.

I think it’s a great second book. For a first I’ve always recommended Practical Common Lisp. I don’t know if that recommendation is still up to date.

I'd simply give newbies this link http://stevelosh.com/blog/2018/08/a-road-to-common-lisp/

Yeah, that's an excellent — and modern — guide.

Re: Let over Lambda – Common Lisp Book (2008)

#60

Earlier quoted context omitted.

https://letoverlambda.com/index.cl/guest/chap6.html Yeah, the sixth chapter sure bashes on Scheme a lot. :/

I always wonder if Common Lispers who bash Scheme know that Guy Steele (who also is the chairman of the Common Lisp standards committee) was the co-creator of Scheme.

I always wonder if Schemers who bash Common Lisp know that Guy Steele (the co-creator of Scheme) was also the chairman of the Common Lisp standards committee.
Post reply on HN