Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Would highly recommend this book, with the caveat of only if you are a common lisp user with a fair bit of experience using common lisp.

This book goes into some of the more advanced uses of macros and I don't believe most carries over to other "lisps".

I really loved the section on reader macros!! That's a topic that doesn't get enough attention from people coming to common lisp.

I don't believe clojure, for example, supports user defined reader macros, atleast I can't remember it having them the last time I used it(circa 2011).

EDIT, it looks like clojure does have reader macros now. Clojure just keeps getting better:)

http://en.wikibooks.org/wiki/Learning_Clojure/Reader_Macros

In addition to Let over Lambda, my common lisp reading list includes:

http://www.amazon.ca/Lisp-Small-Pieces-Christian-Queinnec-eb...

http://www.amazon.ca/Compiling-Continuations-Andrew-W-Appel-...

and http://www.amazon.ca/Paradigms-Artificial-Intelligence-Progr...

I'd love to hear if anyone else has book recommendations in a similar vein. I'm in the middle of a month off to read books and research papers so this is pretty timely for me:)




LoL's author has a collection of references at http://letoverlambda.com/references.lisp

Many of the references are not for learning CL, but are interesting reads (such as Henry Baker's papers).

Also there are references to particular pages of books (noting something important, interesting or funny):

   (cltl2 :a guy-steele :y 1990
     :n "Common Lisp the Language 2nd Ed.")
   (cltl2-p153 :i "Chevrolet!")
   (cltl2-p260
     :i "Can't define compiler macros over CL forms")
etc.


From the wikibooks page: "At this time, Clojure does not allow you to define your own reader macros, but this may change in the future."

Rich Hickey has been pretty adamant about not wanting to provide user-defined reader macros, so I do not expect this to change, wikibooks' optimism notwithstanding.


> Clojure does not allow you to define your own reader macros

Yeah, the reader macros on that wikibooks page are built into the language. The best the Clojure offers are tagged literals[1] but these run after the code is read (so they're not reader macros).

[1] http://clojure.org/reader?responseToken=08f63df34820f8da967f...


Interesting, I've read Let over Lambda cover to cover 2-3 years ago and I don't even remember a chapter on reader macros.

I wonder how many of the concepts of let surrounding a lambda et al would work in Clojure since it uses immutability?


There is a lot less of the unrestrained use of mutability in Clojure, but you can still have shared mutable references via atoms and refs.

EDIT:

As an example, here is the block-scanner in Clojure:

  (defn block-scanner [trig]
    (let [curr (atom trig)]
      (fn [data]
        (doseq [c data]
          (if (not (empty? @curr))
            (reset! curr
                    (if (= (first @curr) c)
                      (rest @curr)
                      trig))))
        (empty? @curr))))


Hi, thank you for the list.

I'm now learning Clojure and simplicity and power of lisp just blows my mind, really happy to write on it. But I wonder what of these books do you recommend to read to those people who are using Clojure?


If you ever wondered why Lispers were considered condescending, arrogant, self-absorbed dorks back in the old ways reading LoL might give you a few hints.

I can't recommend that Clojure people read Hoyte's masterpiece, because Clojure is the first "larger" Lisp without a completely horrible community and I'd like to keep it that way.


Oh, I didn't know about such "good" reputations of the lispers. Will check LoL just to get an idea why. Thanks


As a relatively recent user I can only add that the community around common lisp, while being fairly distributed, are a great bunch. I have found on average no more douches than occupy any community.





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

Search: