{"id":41,"date":"2015-10-08T15:29:11","date_gmt":"2015-10-08T15:29:11","guid":{"rendered":"http:\/\/www.rangakrish.com\/?p=41"},"modified":"2015-10-08T15:33:39","modified_gmt":"2015-10-08T15:33:39","slug":"learning-lisp-resources","status":"publish","type":"post","link":"https:\/\/www.rangakrish.com\/index.php\/2015\/10\/08\/learning-lisp-resources\/","title":{"rendered":"Learning LISP &#8211; Resources"},"content":{"rendered":"<p>During my talks on Lisp Programming, I am invariably asked to suggest good books to start learning the language. Here is a (partial) list that I readily recommend.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Beginner Level:<\/span><\/strong><\/p>\n<ul>\n<li>ANSI Common Lisp, Paul Graham, Prentice Hall, 1996.<\/li>\n<li>Common LISP: A Tutorial, Wendy L.Milner, Prentice Hall, 1988.<\/li>\n<li>Land of LISP: Learn To Program in LISP, One Game At A Time, Conrad Barski, No Starch Press, 2011.<\/li>\n<li>LISP (3rd Edition), Patrick Henry Winston and Berthold Klaus Paul Horn, Pearson Education, 1989.<\/li>\n<li>Programming in Common Lisp, Rodney A.Brooks, John Wiley, 1985.<\/li>\n<li><a href=\"https:\/\/www.cs.cmu.edu\/~dst\/LispBook\/book.pdf\" target=\"_blank\">Common LISP: A Gentle Introduction to Symbolic Computation, David S. Touretzky, Benjamin Cummins, 1990.<\/a><\/li>\n<\/ul>\n<p><strong><span style=\"text-decoration: underline;\">Intermediate Level:<\/span><\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/www.gigamonkeys.com\/book\/\" target=\"_blank\">Practical Common LISP, Peter Siebel, APress, 2005.<\/a><\/li>\n<li>LISP Style &amp; Design, Molly M.Miller and Eric Benson, Digital Press, 1990.<\/li>\n<li>Common LISP: The Language (2nd Edition), Guy L. Steele Jr., Prentice Hall of India, 1990.<\/li>\n<li>The Art of the Metaobject Protocol, Gregor Kiczales, Jim des Rivieres and Daniel G.Bobrow, MIT Press, 1999.<\/li>\n<li><a href=\"http:\/\/www.psg.com\/~dlamkins\/sl\/cover.html\" target=\"_blank\">Successful Lisp: How to Understand and Use Common Lisp, David B.Lamkins, Bookfix.com, 2005.<\/a><\/li>\n<li>Object -Oriented Programming in COMMON LISP: A Programmer\u2019s Guide to CLOS, Sonya E.Keene, Addison-Wesley, 1989.<\/li>\n<li>How to Design Programs, Matthias Felleison, Robert Bruce Findler, Mathew Flatt, and Shriram Krishnamurthi, MIT Press, 2001.<\/li>\n<\/ul>\n<p><span style=\"text-decoration: underline;\"><strong>Advanced Level:<\/strong><\/span><\/p>\n<ul>\n<li><a href=\"http:\/\/www.paulgraham.com\/onlisp.html\" target=\"_blank\">On Lisp, Paul Graham, Prentice Hall, 1993.<\/a><\/li>\n<li>Let Over Lambda: 50 Years of LISP, Doug Hoyte, 2008.<\/li>\n<li>Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp, Peter Norvig, Morgan Kaufmann, 1992.<\/li>\n<li>Artificial Intelligence Programming. Eugene Charniak, Christopher K.Riesbeck and Drew V.McDermott, Lawrence Erlbaum Associates, 1980<\/li>\n<li>Structure and Interpretation of Computer Programs (2nd Edition), Harold Abelson and Gerald Jay Sussman, MIT Press, 1996.<\/li>\n<li>Lisp in Small Pieces, Christian Queinnec, Cambridge University Press, 1994.<\/li>\n<\/ul>\n<p>Most of the above references cover the Common LISP dialect, but some of them use other dialects, for example Scheme. But once you learn Common LISP, understanding other dialects is not that hard.<\/p>\n<p>You \u00a0can also find good tutorials online.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">LISP Implementations:<\/span><\/strong><\/p>\n<p>There are many good implementations available. Some are open-source\u00a0and some are commercial. I use <a href=\"http:\/\/www.lispworks.com\" target=\"_blank\">LispWorks<\/a>\u00a0and <a href=\"http:\/\/franz.com\" target=\"_blank\">Allegro Common Lisp<\/a>\u00a0in my work and both are good. One thing I like about LispWorks is that you can build and deploy\u00a0royalty-free applications. I use\u00a0it as a scripting language in my Astrology software <a href=\"http:\/\/www.kpastrosystem.com\" target=\"_blank\">KPAstro<\/a>. Allegro Lisp comes with some interesting tools such as AllegroCache and\u00a0AllegroGraph.<\/p>\n<p><a href=\"http:\/\/common-lisp.net\/~dlw\/LispSurvey.html\" target=\"_blank\">This\u00a0link<\/a> gives more details about the various implementations.<\/p>\n<p><a href=\"http:\/\/ccl.clozure.com\" target=\"_blank\">Clozure CL<\/a>\u00a0(CCL) is a\u00a0good open-source\u00a0implementation. <a href=\"http:\/\/opusmodus.com\" target=\"_blank\">Opusmodus<\/a>, an algorithmic music composition environment that I have started using recently, is built in CCL and I am quite impressed with its capabilities.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>During my talks on Lisp Programming, I am invariably asked to suggest good books to start learning the language. Here is a (partial) list that I readily recommend. Beginner Level: ANSI Common Lisp, Paul Graham, Prentice Hall, 1996. Common LISP: A Tutorial, Wendy L.Milner, Prentice Hall, 1988. Land of LISP: Learn To Program in LISP, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[18,17],"tags":[19,20],"class_list":["post-41","post","type-post","status-publish","format-standard","hentry","category-lisp","category-programming","tag-lisp","tag-programming"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9OLnF-F","jetpack-related-posts":[{"id":2927,"url":"https:\/\/www.rangakrish.com\/index.php\/2022\/10\/20\/why-learn-lisp\/","url_meta":{"origin":41,"position":0},"title":"Why Learn Lisp?","author":"admin","date":"October 20, 2022","format":false,"excerpt":"In the last article, I had shared my views on why programmers should learn Prolog, preferably as the first language. What language should one learn next? I strongly pitch for Lisp, to be precise, \u201cCommon Lisp\u201d. Lisp happens to be the second oldest (1958) programming language, only after Fortran (1957)!\u2026","rel":"","context":"In &quot;LISP&quot;","block_context":{"text":"LISP","link":"https:\/\/www.rangakrish.com\/index.php\/category\/lisp\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":190,"url":"https:\/\/www.rangakrish.com\/index.php\/2016\/03\/15\/book-review-common-lisp-recipes-by-edi-weitz\/","url_meta":{"origin":41,"position":1},"title":"Book Review: Common Lisp Recipes &#8211; A Problem-Solution Approach","author":"admin","date":"March 15, 2016","format":false,"excerpt":"Last Saturday (March 12, 2016), I got my most eagerly awaited book from Amazon.com. Yes, I am talking about Common Lisp Recipes: A Problem-Solution Approach\u00a0authored by Dr.Edmund Weitz. Of course, if you have been programming in Lisp for a couple of years, you would have definitely heard of Dr.Edi Weitz,\u2026","rel":"","context":"In &quot;Book Review&quot;","block_context":{"text":"Book Review","link":"https:\/\/www.rangakrish.com\/index.php\/category\/book-review\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2200,"url":"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/08\/book-review-the-common-lisp-condition-system-beyond-exception-handling-with-control-flow-mechanisms\/","url_meta":{"origin":41,"position":2},"title":"Book Review &#8211; The Common Lisp Condition System: Beyond Exception Handling with Control Flow Mechanisms.","author":"admin","date":"November 8, 2020","format":false,"excerpt":"Title: The Common Lisp Condition System: Beyond Exception Handling with Control Flow Mechanisms Author: Micha\u0142 \"phoe\" Herda Publisher: Apress Year: 2020 Unlike with other languages, it is rare to find new books being published on Lisp. The last book on Lisp, which I purchased was \u201cCommon Lisp Recipes\u201d\u00a0\u00a0by Edmund Weitz\u2026","rel":"","context":"In &quot;Book Review&quot;","block_context":{"text":"Book Review","link":"https:\/\/www.rangakrish.com\/index.php\/category\/book-review\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Cover-page-209x300.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":70,"url":"https:\/\/www.rangakrish.com\/index.php\/2015\/11\/13\/aspect-oriented-programming-and-lisp\/","url_meta":{"origin":41,"position":3},"title":"Aspect-Oriented Programming and Lisp","author":"admin","date":"November 13, 2015","format":false,"excerpt":"Aspect-oriented programming (AOP) is a popular approach to handle cross-cutting concerns in an application. Common examples of cross-cutting functionality are Logging, Error Handling and Transaction Management. AspectJ\u00a0is the original AOP extension created for Java in 2001.\u00a0AOP extensions have been developed\u00a0for some\u00a0other languages also. There are many good books and online\u2026","rel":"","context":"In &quot;LISP&quot;","block_context":{"text":"LISP","link":"https:\/\/www.rangakrish.com\/index.php\/category\/lisp\/"},"img":{"alt_text":"Lisp Method Combination","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2015\/11\/Lisp-Method-Combination-1.jpg?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2015\/11\/Lisp-Method-Combination-1.jpg?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2015\/11\/Lisp-Method-Combination-1.jpg?resize=525%2C300 1.5x"},"classes":[]},{"id":2377,"url":"https:\/\/www.rangakrish.com\/index.php\/2021\/04\/12\/book-review-programming-algorithms-in-lisp\/","url_meta":{"origin":41,"position":4},"title":"Book Review: Programming Algorithms in Lisp","author":"admin","date":"April 12, 2021","format":false,"excerpt":"Title: Programming Algorithms in Lisp: Writing Efficient Programs with Examples in ANSI Common Lisp Author: Vsevolod Domkin Publisher: Apress Year: 2021 It is only about 5 months since I read and reviewed\u00a0a good book on Lisp written by Micha\u0142 \u201cphoe\u201d Herda. The present book is by Vsevolod Domkin\u00a0and I purchased\u2026","rel":"","context":"In &quot;Book Review&quot;","block_context":{"text":"Book Review","link":"https:\/\/www.rangakrish.com\/index.php\/category\/book-review\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2021\/04\/Book-Cover-209x300.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":3555,"url":"https:\/\/www.rangakrish.com\/index.php\/2024\/11\/22\/multiobjective-optimization-moo-in-lisp-and-prolog\/","url_meta":{"origin":41,"position":5},"title":"Multiobjective Optimization (MOO) in Lisp and Prolog","author":"admin","date":"November 22, 2024","format":false,"excerpt":"Recently I came across a nice article\u00a0by Jose Crespo, where the author stresses that the future of programming revolves around the application of math concepts such as Functor, Monads, Folds, etc. In addition, he argues that familiarity with C\/C++ is essential in this modern AI age. The author goes through\u2026","rel":"","context":"In &quot;C++&quot;","block_context":{"text":"C++","link":"https:\/\/www.rangakrish.com\/index.php\/category\/c\/"},"img":{"alt_text":"Lisp Code for Pareto Front","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2024\/11\/lisp-code-249x300.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/posts\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/comments?post=41"}],"version-history":[{"count":0,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/posts\/41\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/media?parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/categories?post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/tags?post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}