5 ms·
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 so
by chollida1 12y ago
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 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-ebook/dp/B00AKE1U6O http://www.amazon.ca/Lisp-Small-Pieces-Christian-Queinnec-eb...
http://www.amazon.ca/Compiling-Continuations-Andrew-W-Appel-ebook/dp/B00E3UR010/ http://www.amazon.ca/Compiling-Continuations-Andrew-W-Appel-...
and
http://www.amazon.ca/Paradigms-Artificial-Intelligence-Programming-Studies-ebook/dp/B003VWBY1I/ 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:)
- davidrupp 12y agoFrom 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.
- greenyouse 12y ago> 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=08f63df34820f8da967f82d777b5054c9#The%20Reader--Tagged%20Literals http://clojure.org/reader?responseToken=08f63df34820f8da967f...
- deleted 12y ago[deleted]
- deleted 12y ago[deleted]
- davidrupp 12y agohttp://www.paulgraham.com/onlisptext.html http://www.paulgraham.com/onlisptext.html
- agumonkey 12y agoChristian Queinnec's website is also full of Lisp related research. http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/Queinnec.html http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/Que... http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/Design.html http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/Des... also: http://cs.brown.edu/~sk/Publications/Papers/Published/sk-automata-macros/ http://cs.brown.edu/~sk/Publications/Papers/Published/sk-aut... http://docs.racket-lang.org/guide/macros.html http://docs.racket-lang.org/guide/macros.html
- fessguid 12y agoHi, 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?
- frowaway001 12y agoIf 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.
- fessguid 12y agoOh, I didn't know about such "good" reputations of the lispers. Will check LoL just to get an idea why. Thanks
- baggers 12y agoAs 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.
- Flow 12y agoInteresting, 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?
- mej10 12y agoThere 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))))
- kjak 12y agoLoL's author has a collection of references at http://letoverlambda.com/references.lisp 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.