1
0
Fork 0
cl-sites/lispcookbook.github.io/cl-cookbook/index.html

337 lines
15 KiB
HTML
Raw Normal View History

2023-10-25 11:23:21 +02:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="generator" content=
"HTML Tidy for HTML5 for Linux version 5.2.0">
<title>Home</title>
<meta charset="utf-8">
<meta name="description" content="A collection of examples of using Common Lisp">
<meta name="viewport" content=
"width=device-width, initial-scale=1">
<link rel="icon" href=
"assets/cl-logo-blue.png"/>
<link rel="stylesheet" href=
"assets/style.css">
<script type="text/javascript" src=
"assets/highlight-lisp.js">
</script>
<script type="text/javascript" src=
"assets/jquery-3.2.1.min.js">
</script>
<script type="text/javascript" src=
"assets/jquery.toc/jquery.toc.min.js">
</script>
<script type="text/javascript" src=
"assets/toggle-toc.js">
</script>
<link rel="stylesheet" href=
"assets/github.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<h1 id="title-xs"><a href="index.html">The Common Lisp Cookbook</a> &ndash; Home</h1>
<div id="logo-container">
<a href="index.html">
<img id="logo" src="assets/cl-logo-blue.png"/>
</a>
<div id="searchform-container">
<form onsubmit="duckSearch()" action="javascript:void(0)">
<input id="searchField" type="text" value="" placeholder="Search...">
</form>
</div>
<div id="toc-container" class="toc-close">
<div id="toc-title">Table of Contents</div>
<ul id="toc" class="list-unstyled"></ul>
</div>
</div>
<div id="content-container">
<h1 id="title-non-xs"><a href="index.html">The Common Lisp Cookbook</a> &ndash; Home</h1>
<!-- Announcement we can keep for 1 month or more. I remove it and re-add it from time to time. -->
2024-05-15 18:18:38 +02:00
<!-- <p class="announce"> -->
<!-- 📢 🤶 ⭐ -->
<!-- <a style="font-size: 120%" href="https://www.udemy.com/course/common-lisp-programming/?couponCode=LISPY-XMAS2023" title="This course is under a paywall on the Udemy platform. Several videos are freely available so you can judge before diving in. vindarel is (I am) the main contributor to this Cookbook."> Discover our contributor's Lisp course with this Christmas coupon.</a> -->
<!-- <strong> -->
<!-- Recently added: 18 videos on MACROS. -->
<!-- </strong> -->
<!-- <a style="font-size: 90%" href="https://github.com/vindarel/common-lisp-course-in-videos/">Learn more</a>. -->
<!-- </p> -->
<p class="announce">
📢 New videos: <a href="https://www.youtube.com/watch?v=h_noB1sI_e8">web dev demo part 1</a>, <a href="https://www.youtube.com/watch?v=xnwc7irnc8k">dynamic page with HTMX</a>, <a href="https://www.youtube.com/watch?v=Zpn86AQRVN8">Weblocks demo</a>
</p>
2023-10-25 11:23:21 +02:00
<p class="announce-neutral">
📕 <a href="index.html#download-in-epub">Get the EPUB and PDF</a>
</p>
<div id="content"
<blockquote>
<p>Cookbook, n.
a book containing recipes and other information about the preparation and cooking of food.</p>
</blockquote>
<p>A Cookbook is an invaluable resource, as it shows how to do various things in a clear fashion without all the theoretical context. Sometimes you just need to look things up. While cookbooks can never replace proper documentation such as the HyperSpec or books such as Practical Common Lisp, every language deserves a good cookbook, Common Lisp included.</p>
<p>The CL Cookbook aims to tackle all sort of topics, for the beginner as for the more advanced developer.</p>
<h1 id="content">Content</h1>
<h3 id="getting-started">Getting started</h3>
<ul>
<li><a href="license.html">License</a></li>
<li><a href="getting-started.html">Getting started</a>
<ul>
<li>How to install a Common Lisp implementation</li>
<li>How to start a Lisp REPL</li>
<li>How to install third-party libraries with Quicklisp</li>
<li>How to work with projects</li>
</ul>
</li>
<li><a href="editor-support.html">Editor support</a>
<ul>
<li><a href="emacs-ide.html">Using Emacs as an IDE</a></li>
<li><a href="lispworks.html">The LispWorks IDE</a></li>
<li><a href="vscode-alive.html">Using VSCode with Alive</a></li>
</ul>
</li>
</ul>
<h3 id="language-basics">Language basics</h3>
<p id="two-cols"></p>
<ul>
<li><a href="functions.html">Functions</a></li>
<li><a href="data-structures.html">Data Structures</a></li>
<li><a href="strings.html">Strings</a>
<ul>
<li><a href="regexp.html">Regular Expressions</a></li>
</ul>
</li>
<li><a href="numbers.html">Numbers</a></li>
<li><a href="iteration.html">Loops, iteration, mapping</a></li>
<li><a href="arrays.html">Multidimensional Arrays</a></li>
<li><a href="dates_and_times.html">Dates and Times</a></li>
<li><a href="pattern_matching.html">Pattern Matching</a></li>
<li><a href="io.html">Input/Output</a></li>
<li><a href="files.html">Files and Directories</a></li>
<li><a href="clos.html">CLOS (the Common Lisp Object System)</a></li>
</ul>
<h3 id="advanced-topics">Advanced topics</h3>
<p id="two-cols"></p>
<ul>
<li><a href="packages.html">Packages</a></li>
<li><a href="systems.html">Defining Systems</a></li>
<li><a href="error_handling.html">Error and condition handling</a></li>
<li><a href="debugging.html">Debugging</a></li>
<li><a href="macros.html">Macros and Backquote</a></li>
<li><a href="type.html">Type System</a></li>
<li><a href="process.html">Concurrency and Parallelism</a></li>
<li><a href="performance.html">Performance Tuning</a></li>
<li><a href="testing.html">Testing and Continuous Integration</a></li>
<li><a href="scripting.html">Scripting. Building executables</a>
<!-- epub-exclude-start --></li>
<li><a href="misc.html">Miscellaneous</a>
<!-- epub-exclude-end --></li>
</ul>
<h3 id="outside-world">Outside world</h3>
<p id="two-cols"></p>
<ul>
<li><a href="os.html">Interfacing with your OS</a></li>
<li><a href="databases.html">Databases</a></li>
<li><a href="ffi.html">Foreign Function Interfaces</a></li>
2024-05-15 18:18:38 +02:00
<li>NEW! ⭐ <a href="dynamic-libraries.html">Building Dynamic Libraries</a></li>
2023-10-25 11:23:21 +02:00
<li><a href="gui.html">GUI programming</a></li>
<li><a href="sockets.html">Sockets</a></li>
<li><a href="websockets.html">WebSockets</a></li>
<li><a href="web.html">Web development</a></li>
<li><a href="web-scraping.html">Web Scraping</a>
<!-- epub-exclude-start --></li>
<li><a href="win32.html">Using the Win32 API</a>
<!-- epub-exclude-end --></li>
</ul>
<h2 id="download-in-epub">Download in EPUB</h2>
<p>The Cookbook is also available in EPUB (and PDF) format.</p>
2024-01-12 09:23:31 +01:00
<p>You can <a href="https://github.com/LispCookbook/cl-cookbook/releases/download/2023-12-13/common-lisp-cookbook.epub">download it directly in EPUB</a> and <a href="https://github.com/LispCookbook/cl-cookbook/releases/download/2023-12-13/common-lisp-cookbook.pdf">PDF</a>, and you can <strong>pay what you want</strong> to further support its development:</p>
2023-10-25 11:23:21 +02:00
<!-- epub-exclude-start -->
<p><br />
<!-- epub-exclude-end --></p>
<p><a style="font-size: 16px; background-color: #4CAF50; color: white; padding: 16px; cursor: pointer;" href="https://ko-fi.com/s/01fee22a32">
Donate and download the EPUB version
</a></p>
<!-- epub-exclude-start -->
<p><br />
<!-- epub-exclude-end --></p>
<p>Thank you!</p>
<h2 id="translations">Translations</h2>
<p>The Cookbook has been translated to:</p>
<ul>
<li><a href="https://oneforalone.github.io/cl-cookbook-cn/#/">Chinese simplified</a> (<a href="https://github.com/oneforalone/cl-cookbook-cn">Github</a>)</li>
<li><a href="https://book.lisp.com.br/">Portuguese (Brazilian)</a> (<a href="https://github.com/commonlispbr/cl-cookbook">Github</a>)</li>
</ul>
<h1 id="other-cl-resources">Other CL Resources</h1>
<p id="two-cols"></p>
<ul>
<li><a href="http://lisp-lang.org/">lisp-lang.org</a>: success stories, tutorials and style guide</li>
<li><a href="https://github.com/CodyReichert/awesome-cl">Awesome-cl</a>, a curated list of libraries</li>
<li><a href="https://github.com/CodyReichert/awesome-cl#community">List of Lisp Communities</a></li>
<li><a href="https://github.com/google/lisp-koans/">Lisp Koans</a> - a language learning exercise, which guides the learner progressively through many language features.</li>
<li><a href="https://learnxinyminutes.com/docs/common-lisp/">Learn X in Y minutes - Where X = Common Lisp</a> - Small Common Lisp tutorial covering the essentials.</li>
<li><a href="https://common-lisp-libraries.readthedocs.io/">Common Lisp Libraries Read the Docs</a> - the documentation of popular libraries ported to the modern and good looking Read The Docs style.</li>
<li><a href="https://github.com/lisp-tips/lisp-tips/issues/">lisp-tips</a></li>
<li><a href="http://articulate-lisp.com/">Articulate Common Lisp</a>, an initiation manual for the uninitiated</li>
<li><a href="http://web.archive.org/web/20190316190256/https://www.nicklevine.org/declarative/lectures/">Lisp and Elements of Style</a> by Nick Levine</li>
<li>Pascal Costanzas <a href="http://www.p-cos.net/lisp/guide.html">Highly Opinionated Guide to Lisp</a></li>
<li><a href="http://www.cliki.net/">Cliki</a>, Common Lisps wiki</li>
2024-01-12 09:23:31 +01:00
<li>📹 <a href="https://www.udemy.com/course/common-lisp-programming/?referralCode=2F3D698BBC4326F94358">Common Lisp programming: from novice to effective developer</a>, a video course on the Udemy platform (paywall), by one of the main Cookbook contributor. <em>“Thanks for supporting my work on Udemy. You can ask me for a free coupon if you are a student.”</em> vindarel</li>
2023-10-25 11:23:21 +02:00
</ul>
<p>and also: <a href="https://github.com/LispCookbook/cl-cookbook/issues/479">Common Lisp Pitfalls</a> by Jeff Dalton.</p>
<p>Books</p>
<ul>
<li><a href="http://www.gigamonkeys.com/book/">Practical Common Lisp</a> by Peter Seibel</li>
<li><a href="http://weitz.de/cl-recipes/">Common Lisp Recipes</a> by Edmund Weitz, published in 2016,</li>
<li><a href="http://www-2.cs.cmu.edu/~dst/LispBook/">Common Lisp: A Gentle Introduction to Symbolic Computation</a> by David S. Touretzky</li>
<li><a href="https://successful-lisp.blogspot.com/p/httpsdrive.html">Successful Lisp: How to Understand and Use Common Lisp</a> by David B. Lamkins</li>
<li><a href="http://www.paulgraham.com/onlisptext.html">On Lisp</a> by Paul Graham</li>
2024-06-08 14:00:46 +02:00
<li><a href="http://www-2.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html">Common Lisp the Language, 2nd Edition</a> by Guy L. Steele
<ul>
<li><a href="https://github.com/mmontone/cltl2-doc">CLtL2, in PDF format</a></li>
</ul>
</li>
2023-10-25 11:23:21 +02:00
<li><a href="https://www.cs.umd.edu/%7Enau/cmsc421/norvig-lisp-style.pdf">A Tutorial on Good Lisp Style</a> by Peter Norvig and Kent Pitman</li>
</ul>
<p>Advanced books</p>
<ul>
<li><a href="https://leanpub.com/lovinglisp/">Loving Lisp - the Savy Programmers Secret Weapon</a> by Mark Watson</li>
<li><a href="https://leanpub.com/progalgs">Programming Algorithms</a> - A comprehensive guide to writing efficient programs with examples in Lisp.</li>
</ul>
<p>Specifications</p>
<ul>
<li><a href="http://www.lispworks.com/documentation/HyperSpec/Front/index.htm">The Common Lisp HyperSpec</a> by Kent M. Pitman (also available in <a href="https://kapeli.com/dash">Dash</a>, <a href="https://zealdocs.org/">Zeal</a> and <a href="https://velocity.silverlakesoftware.com/">Velocity</a>)</li>
<li><a href="https://cl-community-spec.github.io/pages/index.html">The Common Lisp Community Spec</a> - a new rendering produced from the ANSI specification draft, that everyone has the right to edit.</li>
</ul>
<h1 id="further-remarks">Further remarks</h1>
<p>This is a collaborative project that aims to provide for Common Lisp something
similar to the <a href="http://www.oreilly.com/catalog/cookbook/">Perl Cookbook</a> published by OReilly. More details about
what it is and what it isnt can be found in this <a href="http://groups.google.com/groups?threadm=m3it9soz3m.fsf%40bird.agharta.de">thread</a> from
<a href="news:comp.lang.lisp">comp.lang.lisp</a>.</p>
<p>If you want to contribute to the CL Cookbook, please send a pull request in or
file a ticket!</p>
<p>Yes, were talking to you! We need contributors - write a chapter thats missing
and add it, find an open question and provide an answer, find bugs and report
them, (If you have no idea what might be missing but would like to help, take a
look at the <a href="http://www.oreilly.com/catalog/cookbook/">table of contents</a> of the Perl Cookbook.) Dont worry about
the formatting, just send plain text if you like - well take care about that
later.</p>
<p>Thanks in advance for your help!</p>
<p>The pages here on Github are kept up to date. You can also download a
<a href="https://github.com/LispCookbook/cl-cookbook/archive/master.zip">up to date zip file</a> for offline browsing. More info can be found at the
<a href="https://github.com/LispCookbook/cl-cookbook">Github project page</a>.</p>
<!-- epub-exclude-start -->
<div style="text-align: center">
<img src="orly-cover.png" alt="Oh, really? book cover" />
</div>
<!-- epub-exclude-end -->
<p class="page-source">
Page source: <a href="https://github.com/LispCookbook/cl-cookbook/blob/master/index.md">index.md</a>
</p>
</div>
<script type="text/javascript">
// Don't write the TOC on the index.
if (window.location.pathname != "/cl-cookbook/") {
$("#toc").toc({
content: "#content", // will ignore the first h1 with the site+page title.
headings: "h1,h2,h3,h4"});
}
$("#two-cols + ul").css({
"column-count": "2",
});
$("#contributors + ul").css({
"column-count": "4",
});
</script>
<div>
<footer class="footer">
<hr/>
&copy; 2002&ndash;2023 the Common Lisp Cookbook Project
<div>
2024-05-15 18:18:38 +02:00
📹 Discover <a style="color: darkgrey; text-decoration: underline", href="https://www.udemy.com/course/common-lisp-programming/?referralCode=2F3D698BBC4326F94358">our contributor's Common Lisp video course on Udemy</a>
2023-10-25 11:23:21 +02:00
</div>
</footer>
</div>
<div id="toc-btn">T<br>O<br>C</div>
</div>
<script text="javascript">
HighlightLisp.highlight_auto({className: null});
</script>
<script type="text/javascript">
function duckSearch() {
var searchField = document.getElementById("searchField");
if (searchField && searchField.value) {
var query = escape("site:lispcookbook.github.io/cl-cookbook/ " + searchField.value);
window.location.href = "https://duckduckgo.com/?kj=b2&kf=-1&ko=1&q=" + query;
// https://duckduckgo.com/params
// kj=b2: blue header in results page
// kf=-1: no favicons
}
}
</script>
<script async defer data-domain="lispcookbook.github.io/cl-cookbook" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>