Skip to main content


So, I've been taking another run at learning #CommonLisp. The last time I tried, I simply could not wrap my brain around macros. I'm reading the same book again, but this time am a more experienced programmer, and it all just clicked in my head.

I might actually end up enjoying #Lisp after all. I don't know if it'll dethrone #Haskell, but I'm starting to get why people like it.

reshared this

in reply to Jonathan Lamothe

Don't start with macros. It doesn't make sense to until you really get the "vibes" of how it all goes together.

I've seen so much common lisp code out there that doesn't ever touch macros. They are super powerful, but you don't need them until you do.

Having Haskell down though, you are probably most of the way there.

in reply to Karsten Johansson

@Karsten Johansson Tell that to the author of Practical Common Lisp.

That said, I get it now. It's so stupidly simple when it finally makes sense.

Also, yeah, learning Haskell in the interim helped a lot.

in reply to Jonathan Lamothe

I like the book enough that I bought a physical copy of it.

Siebel (the author) said, back when Twitter was Twitter and everyone liked it just fine, that he was considering updating and adding a few chapters. afaik he hasn't, but it brought my hopes up quite a bit. :ablobcatrave:

If you want truly complicated, check out the book Let Over Lambda. It is mind blowing, but you'll come away from it with a whole new level of understanding.

in reply to Karsten Johansson

@ksaj
one can get pretty far without macros, but there are certainly some scenarios where macros are needed and super helpful.

The main use case is to control the evaluation (order, timing) of arguments. Can't do it with functions.

@me

in reply to hajovonta

@hajovonta Sure, but that isn't what was being said. The point was only that one doesn't need to think Lisp is too complicated just because of macros. They are not the right place to start. Hence the bit about not starting with them.

This website uses cookies. If you continue browsing this website, you agree to the usage of cookies.

⇧