CINXE.COM

On Lisp

<html><head><meta name="Keywords" content="" /><title>On Lisp</title><!-- <META NAME="ROBOTS" CONTENT="NOODP"> --> <link rel="shortcut icon" href="http://ycombinator.com/arc/arc.png"> </head><body bgcolor="#ffffff" background="https://s.turbifycdn.com/aah/paulgraham/essays-4.gif" text="#000000" link="#000099" vlink="#464646"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top"><td><map name=1717c64a02ebc147><area shape=rect coords="0,0,67,21" href="index.html"><area shape=rect coords="0,21,67,42" href="articles.html"><area shape=rect coords="0,42,67,63" href="http://www.amazon.com/gp/product/0596006624"><area shape=rect coords="0,63,67,84" href="books.html"><area shape=rect coords="0,84,67,105" href="http://ycombinator.com"><area shape=rect coords="0,105,67,126" href="arc.html"><area shape=rect coords="0,126,67,147" href="bel.html"><area shape=rect coords="0,147,67,168" href="lisp.html"><area shape=rect coords="0,168,67,189" href="antispam.html"><area shape=rect coords="0,189,67,210" href="kedrosky.html"><area shape=rect coords="0,210,67,231" href="faq.html"><area shape=rect coords="0,231,67,252" href="raq.html"><area shape=rect coords="0,252,67,273" href="quo.html"><area shape=rect coords="0,273,67,294" href="rss.html"><area shape=rect coords="0,294,67,315" href="bio.html"><area shape=rect coords="0,315,67,336" href="https://twitter.com/paulg"><area shape=rect coords="0,336,67,357" href="https://mas.to/@paulg"></map><img src="https://s.turbifycdn.com/aah/paulgraham/essays-5.gif" width="69" height="357" usemap=#1717c64a02ebc147 border="0" hspace="0" vspace="0" ismap /></td><td><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="1" width="26" border="0" /></td><td><a href="index.html"><img src="https://s.turbifycdn.com/aah/paulgraham/essays-6.gif" width="410" height="45" border="0" hspace="0" vspace="0" /></a><br /><br /><table border="0" cellspacing="0" cellpadding="0" width="435"><tr valign="top"><td width="435"><a href="https://s.turbifycdn.com/aah/paulgraham/on-lisp-15.gif"><img src="https://s.turbifycdn.com/aah/paulgraham/on-lisp-16.gif" width="70" height="108" align="left" border="0" hspace="0" vspace="0" /></a><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="116" width="10" align="left" border="0" /><img src="https://s.turbifycdn.com/aah/paulgraham/on-lisp-17.gif" width="60" height="18" border="0" hspace="0" vspace="0" alt="On Lisp" /><br /><br /><font size="2" face="verdana"><i>On Lisp</i> is a comprehensive study of advanced Lisp techniques, with bottom-up programming as the unifying theme. It gives the first complete description of macros and macro applications. The book also covers important subjects related to bottom-up programming, including functional programming, rapid prototyping, interactive development, and embedded languages. The final chapter takes a deeper look at object-oriented programming than previous Lisp books, showing the step-by-step construction of a working model of the Common Lisp Object System (CLOS).<br /><br />As well as an indispensable reference, <i>On Lisp</i> is a source of software. Its examples form a library of functions and macros that readers will be able to use in their own Lisp programs.<br /><br />Prentice Hall, 1993, 432 pages, paperback. ISBN 0130305529.<br /><br /><b>New:</b> <a href="onlisptext.html">Download</a> it for free.<br /><br /><br /><br /><img src="https://s.turbifycdn.com/aah/paulgraham/on-lisp-18.gif" width="191" height="18" border="0" hspace="0" vspace="0" /><br /><br />"The first book that really explains what Lisp is all about."<br /><br />- John Foderaro, Franz Inc.<br /><br />"<i>On Lisp</i> draws the reader in from the very first sentence. The author's writing style is clear and articulate, but comfortably informal. The subject matter is important, and has not been adequately treated in previous books. The chapters on macros present important material that is virtually unique to this book.<br /><br />The chapter on object-oriented programming is excellent. The author builds a nice mini-CLOS to teach basic object-oriented techniques, but then wisely switches to real CLOS to cover the more advanced topics."<br /><br />- David Touretzky, Carnegie-Mellon University<br /><br />"An excellent description of the real essence of Lisp."<br /><br />- Thomas Cheatham, Harvard University<br /><br />"As with his other book, <i>ANSI Common Lisp,</i> Graham writes in a fluid style that is a pleasure to read."<br /><br />- Amazon.Com<br /><br />"The topics <i>On Lisp</i> covers are extremely useful for any seriously aspiring Lisp programmer. I think it's a great idea to collect in one place programming techniques normally attainable only the hard way. The examples, which are plentiful and excellent, are one of the significant strengths of the book."<br /><br />- Skona Brittain, Developer of NanoLisp<br /><br /><br clear="all" /></font></td></tr></table><br /><table border="0" cellspacing="0" cellpadding="0" width="435"><tr><td><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="5" width="1" border="0" /></td></tr><tr valign="top"><td><center><img src="https://s.turbifycdn.com/aah/paulgraham/serious-2.gif" width="6" height="14" border="0" hspace="0" vspace="0" /></center></td><td width="8"><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="1" width="8" border="0" /></td><td><font size="2" face="verdana"><b><a href="onlisptext.html">Download</a></b><br /><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="2" width="1" border="0" /><br /></font></td><td><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="1" width="8" border="0" /></td><td><center><img src="https://s.turbifycdn.com/aah/paulgraham/serious-2.gif" width="6" height="14" border="0" hspace="0" vspace="0" /></center></td><td width="8"><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="1" width="8" border="0" /></td><td><font size="2" face="verdana"><b><a href="http://www.amazon.com/exec/obidos/ASIN/0130305529">Amazon</a></b><br /><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="2" width="1" border="0" /><br /></font></td><td><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="1" width="8" border="0" /></td><td><center><img src="https://s.turbifycdn.com/aah/paulgraham/serious-2.gif" width="6" height="14" border="0" hspace="0" vspace="0" /></center></td><td width="8"><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="1" width="8" border="0" /></td><td><font size="2" face="verdana"><b><a href="https://sep.turbifycdn.com/ty/cdn/paulgraham/onlisp.lisp?t=1688221954&">Code</a></b><br /><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="2" width="1" border="0" /><br /></font></td><td><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="1" width="8" border="0" /></td><td><center><img src="https://s.turbifycdn.com/aah/paulgraham/serious-2.gif" width="6" height="14" border="0" hspace="0" vspace="0" /></center></td><td width="8"><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="1" width="8" border="0" /></td><td><font size="2" face="verdana"><b><a href="onlisperrata.html">Errata</a></b><br /><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="2" width="1" border="0" /><br /></font></td><td><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="1" width="8" border="0" /></td><td><center><img src="https://s.turbifycdn.com/aah/paulgraham/serious-2.gif" width="6" height="14" border="0" hspace="0" vspace="0" /></center></td><td width="8"><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="1" width="8" border="0" /></td><td><font size="2" face="verdana"><b><a href="callforbugs.html">Call for Bugs</a></b><br /><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="2" width="1" border="0" /><br /></font></td></tr><tr><td><img src="https://sep.turbifycdn.com/ca/Img/trans_1x1.gif" height="3" width="1" border="0" /></td></tr></table><br /><table border="0" cellspacing="0" cellpadding="0" width="435"><tr><td><font size="2" face="verdana"><br><br><hr></font></td></tr></table></td></tr></table></body> <script type="text/javascript"> csell_env = 'ue1'; var storeCheckoutDomain = 'order.store.turbify.net'; </script> <script type="text/javascript"> function toOSTN(node){ if(node.hasAttributes()){ for (const attr of node.attributes) { node.setAttribute(attr.name,attr.value.replace(/(us-dc1-order|us-dc2-order|order)\.(store|stores)\.([a-z0-9-]+)\.(net|com)/g, storeCheckoutDomain)); } } }; document.addEventListener('readystatechange', event => { if(typeof storeCheckoutDomain != 'undefined' && storeCheckoutDomain != "order.store.turbify.net"){ if (event.target.readyState === "interactive") { fromOSYN = document.getElementsByTagName('form'); for (let i = 0; i < fromOSYN.length; i++) { toOSTN(fromOSYN[i]); } } } }); </script> <script type="text/javascript"> // Begin Store Generated Code </script> <script type="text/javascript" src="https://s.turbifycdn.com/lq/ult/ylc_1.9.js" ></script> <script type="text/javascript" src="https://s.turbifycdn.com/ae/lib/smbiz/store/csell/beacon-a9518fc6e4.js" > </script> <script type="text/javascript"> // Begin Store Generated Code csell_page_data = {}; csell_page_rec_data = []; ts='TOK_STORE_ID'; </script> <script type="text/javascript"> // Begin Store Generated Code function csell_GLOBAL_INIT_TAG() { var csell_token_map = {}; csell_token_map['TOK_SPACEID'] = '2022276099'; csell_token_map['TOK_URL'] = ''; csell_token_map['TOK_STORE_ID'] = 'paulgraham'; csell_token_map['TOK_ITEM_ID_LIST'] = 'onlisp'; csell_token_map['TOK_ORDER_HOST'] = 'order.store.turbify.net'; csell_token_map['TOK_BEACON_TYPE'] = 'prod'; csell_token_map['TOK_RAND_KEY'] = 't'; csell_token_map['TOK_IS_ORDERABLE'] = '2'; c = csell_page_data; var x = (typeof storeCheckoutDomain == 'string')?storeCheckoutDomain:'order.store.turbify.net'; var t = csell_token_map; c['s'] = t['TOK_SPACEID']; c['url'] = t['TOK_URL']; c['si'] = t[ts]; c['ii'] = t['TOK_ITEM_ID_LIST']; c['bt'] = t['TOK_BEACON_TYPE']; c['rnd'] = t['TOK_RAND_KEY']; c['io'] = t['TOK_IS_ORDERABLE']; YStore.addItemUrl = 'http%s://'+x+'/'+t[ts]+'/ymix/MetaController.html?eventName.addEvent&cartDS.shoppingcart_ROW0_m_orderItemVector_ROW0_m_itemId=%s&cartDS.shoppingcart_ROW0_m_orderItemVector_ROW0_m_quantity=1&ysco_key_cs_item=1&sectionId=ysco.cart&ysco_key_store_id='+t[ts]; } </script> <script type="text/javascript"> // Begin Store Generated Code function csell_REC_VIEW_TAG() { var env = (typeof csell_env == 'string')?csell_env:'prod'; var p = csell_page_data; var a = '/sid='+p['si']+'/io='+p['io']+'/ii='+p['ii']+'/bt='+p['bt']+'-view'+'/en='+env; var r=Math.random(); YStore.CrossSellBeacon.renderBeaconWithRecData(p['url']+'/p/s='+p['s']+'/'+p['rnd']+'='+r+a); } </script> <script type="text/javascript"> // Begin Store Generated Code var csell_token_map = {}; csell_token_map['TOK_PAGE'] = 'p'; csell_token_map['TOK_CURR_SYM'] = '$'; csell_token_map['TOK_WS_URL'] = 'https://paulgraham.csell.store.turbify.net/cs/recommend?itemids=onlisp&location=p'; csell_token_map['TOK_SHOW_CS_RECS'] = 'false'; var t = csell_token_map; csell_GLOBAL_INIT_TAG(); YStore.page = t['TOK_PAGE']; YStore.currencySymbol = t['TOK_CURR_SYM']; YStore.crossSellUrl = t['TOK_WS_URL']; YStore.showCSRecs = t['TOK_SHOW_CS_RECS']; </script> <script type="text/javascript" src="https://s.turbifycdn.com/ae/store/secure/recs-1.3.2.2.js" ></script> <script type="text/javascript" > </script> </html> <!-- html111.prod.store.e1b.lumsb.com Wed Feb 26 09:52:51 PST 2025 -->

Pages: 1 2 3 4 5 6 7 8 9 10