emacs.d/clones/lisp/www.cliki.net/Online tutorial.html
2022-10-07 15:47:14 +02:00

155 lines
No EOL
13 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>CLiki: Online Tutorial</title>
<link rel="alternate" type="application/atom+xml" title="ATOM feed of edits to current article"
href="https://www.cliki.net/site/feed/article.atom?title=Online%20Tutorial">
<link rel="stylesheet" href="static/css/style.css">
<link rel="stylesheet" href="static/css/colorize.css">
</head>
<body>
<span class="hidden">CLiki - Online Tutorial</span>
<div id="content"><div id="content-area"><div id="article-title">Online Tutorial</div><div id="article">Online Tutorials for programming Common Lisp or with Common Lisp. See also the rest of the <a href="Document.html" class="internal">Document</a>s and <a href="Lisp&#32;Books.html" class="internal">Lisp Books</a>, and the <a href="Getting&#32;Started.html" class="internal">Getting Started</a> guide.<p><h2>Recommended for beginners</h2><p><ul>
<li>Peter Seibel's <a href="http://www.gigamonkeys.com/book/">Practical Common Lisp</a> (see also <a href="Practical&#32;Common&#32;Lisp.html" class="internal">Practical Common Lisp</a> on cliki)</li><p><li>
<a href="http://learnxinyminutes.com/docs/common-lisp/">Learn X in Y minutes (Lisp)</a>. A good precursor to an introductory book like Practical Common Lisp (below).<p></li>
<li>
<a href="https://github.com/rabbibotton/clog/blob/main/LEARN.md">Common Lisp "The Tutorial" Series - Setting up Lisp + Lisp Tutorial for Programmers + CLOG Tutorials</a><p></li>
<li><a href="http://stevelosh.com/blog/2018/08/a-road-to-common-lisp/">A Road to Common Lisp</a></li><p><li>
<a href="http://lisp.plasticki.com/show?14F">Lisp in Small Parts</a>.
</li>
<li>
<a href="http://cs.gmu.edu/~sean/lisp/LispTutorial.html">Lisp Tutorial: Learning Lisp Fast</a>.<p></li>
<li>
<a href="http://alarm.cti.depaul.edu/lisptutor/">LispTutor Jr</a> is an online tutorial with interactive exercises to test your knowledge and understanding.</li><p><li> <a href="http://art2.ph-freiburg.de/Lisp-Course">ELM-ART</a> is an interactive and adaptive Web-based Lisp tutorial, itself written in Common Lisp, developed by <a href="http://art.ph-freiburg.de/psy/people/GWeber.html">Prof. Gerhard Weber</a> of the University of Freiburg. Tutorial available in English and German. Type in a unique user name and password: no pre-registration step required. (Home page last changed: 2006)<p></li>
<li>
<a href="http://www.cs.cmu.edu/afs/cs.cmu.edu/user/dst/www/LispBook/index.html">Common Lisp: A Gentle Introduction to Symbolic Computation</a> by David S. Touretzky. Assumes no programming prerequisite but does assume you have a working Lisp implementation setup. <p></li>
<li>
<a href="http://www.lisperati.com/casting.html">Casting SPELs in Lisp -- A Comic Book</a> by Conrad Barski, M.D. Quick interactive intro to Lisp, including macros (aka SPELs), using an interactive adventure game example. Last updated 2008. A prequel to his book, Land Of Lisp (2010).<p></li>
<li>David B. Lamkins' <a href="http://successful-lisp.blogspot.com/">Successful Lisp</a> book<p></li>
<li>
<a href="http://play.org/links/lisp-setup">Prepare your Lisp environment(s)</a>. How to set up a Common Lisp implementation and IDE.<p></li>
<li>Rainer Joswig's <a href="http://web.archive.org/web/20161219013413/http://lispm.de/ccl">Lisp on the Raspberry Pi and other ARM based Platforms</a>: How to set up a Common Lisp Clozure implementation on a multitude of ARM based platforms such as Raspberry Pi, ODROID and hackberry.</li><p><li>
<a href="http://www.cse.buffalo.edu/~shapiro/Commonlisp/">COMMON LISP: An Interactive Approach</a>, by Stuart C. Shapiro<p></li>
<li>
<a href="DataMiningTools&#32;Lisp&#32;slides.html" class="internal">DataMiningTools Lisp slides</a> are a set of slides introducing aspects of Lisp programming.<p><p></li>
</ul><p><h2>Further reading</h2><p><ul>
<li>The <a href="https://lispcookbook.github.io/cl-cookbook/">Common Lisp Cookbook</a>
</li>
<li>
<a href="http://www.norvig.com/luv-slides.ps">Slides</a> for the ``Tutorial on Good Lisp Programming Style'' by Peter Norvig and Kent Pitman at the Lisp Users and Vendors Conference, August 10, 1993<p></li>
<li>Heinrich Taube's <a href="http://web.archive.org/web/20100416004533/http://ddm.caad.ed.ac.uk/staff/michael/class/moz/cm/doc/contrib/lispstyle.html">Lisp Style Tips</a> quickly covers the major points of style for efficient Lisp use for beginners.<p></li>
<li>
<a href="http://p-cos.net/lisp/guide.html">Pascal Costanza's Highly Opinionated Guide to Lisp</a><p></li>
<li>
<a href="http://chaitanyagupta.com/lisp/restarts.html">Common Lisp: A Tutorial on Conditions and Restarts</a><p></li>
<li>
<a href="http://vijaymathew.github.io/aeh.html">Exception handling - the Common Lisp way</a><p></li>
<li>
<a href="http://web.archive.org/web/20141217013140/http://www.aiai.ed.ac.uk/~jeff/clos-guide.html">CLOS Guide</a><p></li>
<li>Using <a href="http://web.archive.org/web/20110917104225/http://vmathew.in/lisp-repl.html">Common Lisp REPL tools</a> for development and debugging.<p></li>
<li>
<a href="http://www.adamtornhill.com/articles/lispweb.htm">Lisp for the Web</a> (See also <a href="http://web.archive.org/web/20161017090213/https://msnyder.info/posts/2011/07/lisp-for-the-web-part-ii/">Lisp for the Web Part II</a> which expands on the original.)<p></li>
<li>
<a href="http://web.archive.org/web/20201112015207/http://www.n-a-n-o.com/lisp/cmucl-tutorials/LISP-tutorial.html">Common LISP Hints</a>, by Geoffrey J. Gordon (CMUCL but also for other implementations).<p></li>
<li>
<a href="http://web.archive.org/web/20180207161049/http://frank.kank.net/essays/hash.html">Hash Table Syntax in Common Lisp</a> - reader macro and pretty printer tutorial<p></li>
<li>
<a href="https://gist.github.com/chaitanyagupta/9324402">Reader Macros in Common Lisp</a><p></li>
<li>
<a href="http://arxiv.org/pdf/1209.5626v1.pdf">A Tutorial For Creating and Publishing Open Source Lisp Software</a> (pdf), by <a href="Robert&#32;Smith.html" class="internal">Robert Smith</a>
</li><p><li>
<a href="https://vindarel.github.io/cl-torrents/tutorial.html">cl-torrents tutorial</a>, an extensive tutorial covering <strong>web scraping</strong>, project creation, parsing of <strong>command line arguments</strong>, building executables, <strong>continuous integration</strong>, unit tests, etc. </li><p></ul><p><h2>University course material</h2><p><ul>
<li>
<a href="http://www.nicklevine.org/declarative/lectures/">Lisp and elements of style</a> is a twelve-lecture course written by <a href="Nick&#32;Levine.html" class="internal">Nick Levine</a> for delivery to undergraduates at <a href="https://aru.ac.uk/">Anglia Polytechnic University</a>. It covers most introductory aspects of the language (apart from <a href="CLOS.html" class="internal">CLOS</a>) and includes exercises, suggestions for practical sessions, two longer assignments and even an exam with model answers. Online and free. (Courses from 1999 and 2000. Last update in 2001)<p></li>
<li>Four <a href="http://www.cs.sfu.ca/CC/310/pwfong/Lisp/">lisp tutorials for the CS310 class</a> taught by Philip Fong at Simon Fraser University. The tutorials consider basic lisp programming, <a href="https://www.cliki.net/functional%20programming" class="new">functional programming</a>, <a href="https://www.cliki.net/data%20abstraction" class="new">data abstraction</a>, and <a href="https://www.cliki.net/imperative%20programming" class="new">imperative programming</a>. Each has exercises, source code, and solutions. (No course dates; web server says page was last updated 2005)<p></li>
<li> <a href="http://dept-info.labri.fr/~idurand/enseignement/PFS/Book/programmation.html">Traité de Programmation en Common Lisp</a> (in French), by Robert Strandh and Irène Durand. (2001) (old link http://dept-info.labri.u-bordeaux.fr/%7Estrandh/Teaching/Programmation-Symbolique/Common/Book/HTML/programmation.html is dangling).<p></li>
<li> <a href="http://www.algo.be/logo1/lisp/prog.html">Introduction à la programmation en Common Lisp</a>.<p></li>
<li>
<a href="http://www.dca.fee.unicamp.br/courses/EA072/lisp9596/index.html">Introdução à Linguagem Lisp</a>. Tutorial by João Cachopo and António Menezes Leitão. Excercises with answers. In Portuguese. (1995)<p></li>
<li>Although teaching Scheme, Hal Abelson and Gerald Jay Sussman's Structure and Interpretation of Computer Programs (<a href="SICP.html" class="internal">SICP</a>) course taught at MIT is a very good resource for learning how to think in Lisp. Videos of lectures are available from <a href="http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/">CSAIL</a>.<p></li>
<li> <a href="http://www.cs.northwestern.edu/academics/courses/325/admin/overview.php">EECS 325 Lecture Notes</a><p></li>
<li>
<a href="http://faculty.chas.uni.edu/~wallingf/teaching/172/materials/session13/">[using CLOS] How a simple MVC works (810:172 Software Engineering Course) </a><p></li>
</ul><p><h2>Implementation Provided Tutorials</h2><p>Those are Common Lisp tutorial provided by implementations. They may have some implementation specific examples, but may still be useful to all.<p><ul>
<li>
<a href="http://clisp.hg.sourceforge.net/hgweb/clisp/clisp/raw-file/tip/doc/LISP-tutorial.txt">clisp LISP-tutorial.txt</a><p></li>
<li>
<a href="http://www.franz.com/resources/educational_resources/cooper.book.pdf">Basic Lisp Techniques, by David Cooper, Jr., a comprehensive basic Lisp workbook (some Allegro CL dependencies).</a><p></li>
</ul><p><h2>Cliki Tutorials</h2><p><ul>
<li>
<a href="CloserLookAtCharacters.html" class="internal">CloserLookAtCharacters</a> -
Characters are not their codes -- Encodings and external format in Common Lisp
</li>
<li>
<a href="CloserLookAtSyntax.html" class="internal">CloserLookAtSyntax</a> -
From time to time, we see lisp very newbies try to write "blocks" of expressions within parentheses like:
</li>
<li>
<a href="DataMiningTools&#32;Lisp&#32;slides.html" class="internal">DataMiningTools Lisp slides</a> -
DataMiningTools is an online education company that has produced a set of freely-viewable introductory slides on Common Lisp:
</li>
<li>
<a href="Exporting&#32;Struct-Related&#32;Functions.html" class="internal">Exporting Struct-Related Functions</a> -
Brief discussion of functions to be considered for export when creating Lisp structures with <a href="https://www.cliki.net/site/HyperSpec/Body/mac_defstruct.html" class="hyperspec">defstruct</a>
</li>
<li>
<a href="format.html" class="internal">format</a> -
</li>
<li>
<a href="Practical&#32;Common&#32;Lisp.html" class="internal">Practical Common Lisp</a> -
"Practical Common Lisp", an introduction to Common Lisp by <a href="Peter&#32;Seibel.html" class="internal">Peter Seibel</a>, available on the web at <a href="http://www.gigamonkeys.com/book/">http://www.gigamonkeys.com/book/</a> and also in dead-tree form from <a href="https://www.apress.com/">Apress</a>
</li>
<li>
<a href="TutorialClispDebugger.html" class="internal">TutorialClispDebugger</a> -
Small Clisp Debugger Tutorial
</li>
<li>
<a href="TutorialDebuggingDeadLock.html" class="internal">TutorialDebuggingDeadLock</a> -
Debugging a dead-lock in a program using bordeaux-threads in ccl
</li>
<li>
<a href="TutorialSpecialVariables.html" class="internal">TutorialSpecialVariables</a> -
Mini Tutorial Special Variables
</li>
</ul></div></div>
<div id="footer" class="buttonbar"><ul><li><a href="Online&#32;Tutorial.html">Current version</a></li>
<li><a href="https://www.cliki.net/site/history?article=Online%20Tutorial">History</a></li>
<li><a href="https://www.cliki.net/site/backlinks?article=Online%20Tutorial">Backlinks</a></li><li><a href="https://www.cliki.net/site/edit-article?title=Online%20Tutorial&amp;from-revision=3863178395">Edit</a></li><li><a href="https://www.cliki.net/site/edit-article?create=t">Create</a></li></ul></div>
</div>
<div id="header-buttons" class="buttonbar">
<ul>
<li><a href="https://www.cliki.net/">Home</a></li>
<li><a href="https://www.cliki.net/site/recent-changes">Recent Changes</a></li>
<li><a href="CLiki.html">About</a></li>
<li><a href="Text&#32;Formatting.html">Text Formatting</a></li>
<li><a href="https://www.cliki.net/site/tools">Tools</a></li>
</ul>
<div id="search">
<form action="https://www.cliki.net/site/search">
<label for="search_query" class="hidden">Search CLiki</label>
<input type="text" name="query" id="search_query" value="" />
<input type="submit" value="search" />
</form>
</div>
</div>
<div id="pageheader">
<div id="header">
<span id="logo">CLiki</span>
<span id="slogan">the common lisp wiki</span>
<div id="login"><form method="post" action="https://www.cliki.net/site/login">
<label for="login_name" class="hidden">Account name</label>
<input type="text" name="name" id="login_name" class="login_input" />
<label for= "login_password" class="hidden">Password</label>
<input type="password" name="password" id="login_password" class="login_input" />
<input type="submit" name="login" value="login" id="login_submit" /><br />
<div id="register"><a href="https://www.cliki.net/site/register">register</a></div>
<input type="submit" name="reset-pw" value="reset password" id="reset_pw" />
</form>
</div>
</div>
</div>
</body></html>