142 lines
28 KiB
Plaintext
142 lines
28 KiB
Plaintext
[38;5;12m [39m[38;2;255;187;0m[1m[4mAwesome Common Lisp Learning [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mAwesome[0m[38;5;14m[1m[4m (https://awesome.re/badge.svg)[0m[38;2;255;187;0m[1m[4m (https://awesome.re)[0m
|
||
|
||
|
||
[38;5;12m [39m
|
||
|
||
|
||
[38;5;12mThis list focuses on resources for learning Common Lisp, especially resources that I've found useful.[39m
|
||
|
||
[38;5;12mThere are other Awesome Common Lisp lists that focus on other topics:[39m
|
||
[38;5;12m- [39m[38;5;14m[1mLibraries[0m[38;5;12m (https://github.com/CodyReichert/awesome-cl)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mCurated Libraries[0m[38;5;12m (https://github.com/vindarel/curated-awesome-cl) - Forked and updated from the above list.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mSoftware[0m[38;5;12m (https://github.com/azzamsa/awesome-cl-software)[39m
|
||
|
||
[38;5;12mContributions are welcome. Please read the [39m[38;5;14m[1mcontribution guidelines[0m[38;5;12m (contributing.md) for details.[39m
|
||
|
||
[38;2;255;187;0m[4mContents[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHow To Use[0m[38;5;12m (#how-to-use)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mLisp Environments[0m[38;5;12m (#lisp-environments)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mOnline References[0m[38;5;12m (#online-references)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mOnline Books[0m[38;5;12m (#online-books)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mOffline Books[0m[38;5;12m (#offline-books)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mOnline Community[0m[38;5;12m (#online-community)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mLibrary Management[0m[38;5;12m (#library-management)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCommon Lisp Implementations[0m[38;5;12m (#common-lisp-implementations)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCredit[0m[38;5;12m (#credit)[39m
|
||
|
||
[38;2;255;187;0m[4mHow To Use[0m
|
||
[38;5;12m1. Get a Lisp environment.[39m
|
||
[38;5;12m2. Bookmark the [39m[38;5;14m[1mThe Common Lisp Hyperspec[0m[38;5;12m (http://www.lispworks.com/documentation/common-lisp.html).[39m
|
||
[38;5;12m3. Download and work through a Lisp book of an appropriate level. Type the examples and play with the code. Feel free to switch books and try a different one.[39m
|
||
[38;5;12m4. Try out [39m[38;5;14m[1mExercism[0m[38;5;12m (https://exercism.org/tracks/common-lisp).[39m
|
||
[38;5;12m5. If you get stuck, find an online community and [39m[38;5;14m[1mask smart questions[0m[38;5;12m (http://www.catb.org/esr/faqs/smart-questions.html).[39m
|
||
[38;5;12m6. Learn about [39m[38;5;14m[1mQuicklisp[0m[38;5;12m (https://www.quicklisp.org/beta/).[39m
|
||
[38;5;12m7. At some point, read your Lisp implementation's manual.[39m
|
||
|
||
[38;2;255;187;0m[4mLisp Environments[0m
|
||
[38;5;12mYou can run a Lisp implementation directly, but an editing environment makes the experience easier.[39m
|
||
[38;5;12m- Prepackaged environments[39m
|
||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mPortacle[0m[38;5;12m [39m[38;5;12m(https://shinmera.github.io/portacle/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mportable[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmultiplatform[39m[38;5;12m [39m[38;5;12mCommon[39m[38;5;12m [39m[38;5;12mLisp[39m[38;5;12m [39m[38;5;12menvironment.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mships[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mslightly[39m[38;5;12m [39m[38;5;12mcustomized[39m[38;5;12m [39m[38;5;12mEmacs[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mSLIME,[39m[38;5;12m [39m[38;5;12mSBCL[39m[38;5;12m [39m[38;5;12m(a[39m[38;5;12m [39m[38;5;12mpopular[39m[38;5;12m [39m[38;5;12mCommon[39m[38;5;12m [39m[38;5;12mLisp[39m[38;5;12m [39m[38;5;12mimplementation),[39m[38;5;12m [39m[38;5;12mQuicklisp[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mGit.[39m[38;5;12m [39m[38;5;12mNo[39m[38;5;12m [39m[38;5;12minstallation[39m
|
||
[38;5;12mneeded,[39m[38;5;12m [39m[38;5;12mso[39m[38;5;12m [39m[38;5;12mit's[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mvery[39m[38;5;12m [39m[38;5;12mquick[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12measy[39m[38;5;12m [39m[38;5;12mway[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mget[39m[38;5;12m [39m[38;5;12mgoing.[39m
|
||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mLispbox[0m[38;5;12m [39m[38;5;12m(https://common-lisp.net/project/lispbox/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12mIDE[39m[38;5;12m [39m[38;5;12m(Emacs[39m[38;5;12m [39m[38;5;12m+[39m[38;5;12m [39m[38;5;12mSLIME),[39m[38;5;12m [39m[38;5;12mCommon[39m[38;5;12m [39m[38;5;12mLisp[39m[38;5;12m [39m[38;5;12mimplementation[39m[38;5;12m [39m[38;5;12m(Clozure[39m[38;5;12m [39m[38;5;12mCommon[39m[38;5;12m [39m[38;5;12mLisp)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mmanager[39m[38;5;12m [39m[38;5;12m(Quicklisp),[39m[38;5;12m [39m[38;5;12mpre-packaged[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12marchives[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mWindows,[39m[38;5;12m [39m[38;5;12mmacOS[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mLinux.[39m[38;5;12m [39m[38;5;12mDescendant[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m
|
||
[38;5;12m"Lisp[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mBox"[39m[38;5;12m [39m[38;5;14m[1mmentioned[0m[38;5;12m [39m[38;5;12m(http://www.gigamonkeys.com/book/lather-rinse-repeat-a-tour-of-the-repl.html)[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mPractical[39m[38;5;12m [39m[38;5;12mCommon[39m[38;5;12m [39m[38;5;12mLisp.[39m
|
||
[38;5;12m - [39m[38;5;14m[1mLispworks Personal Edition[0m[38;5;12m (http://www.lispworks.com/downloads/) - A non-Emacs based IDE for LispWorks Lisp, with some restrictions.[39m
|
||
[38;5;12m - [39m[38;5;14m[1mAllegro Common Lisp[0m[38;5;12m (https://franz.com/products/allegrocl/) - Has a free [39m[38;5;14m[1mExpress Edition[0m[38;5;12m (https://franz.com/downloads/clp/survey) IDE, and [39m[38;5;14m[1mtraining videos on YouTube[0m[38;5;12m (https://www.youtube.com/channel/UCN36UrxtyNBJPaG0kmBJNRw).[39m
|
||
[38;5;12m- For advanced users[39m
|
||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mArticulate[0m[38;5;14m[1m [0m[38;5;14m[1mCommon[0m[38;5;14m[1m [0m[38;5;14m[1mLisp[0m[38;5;12m [39m[38;5;12m(http://articulate-lisp.com)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mHOWTO[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mputting[39m[38;5;12m [39m[38;5;12mtogether[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mLisp[39m[38;5;12m [39m[38;5;12menvironment,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mhas[39m[38;5;12m [39m[38;5;12minformation[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;14m[1museful[0m[38;5;14m[1m [0m[38;5;14m[1mlibraries[0m[38;5;12m [39m[38;5;12m(http://articulate-lisp.com/project/abcs.html)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;14m[1mstructure[0m[38;5;14m[1m [0m[38;5;14m[1mprojects[0m[38;5;12m [39m
|
||
[38;5;12m(http://articulate-lisp.com/project/new-project.html).[39m
|
||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mIf[39m[38;5;12m [39m[38;5;12myou're[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mexperienced[39m[38;5;12m [39m[38;5;14m[1mEmacs[0m[38;5;12m [39m[38;5;12m(https://www.gnu.org/software/emacs/)[39m[38;5;12m [39m[38;5;12muser,[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mjust[39m[38;5;12m [39m[38;5;12minstall[39m[38;5;12m [39m[38;5;14m[1mSLIME[0m[38;5;12m [39m[38;5;12m(https://common-lisp.net/project/slime/)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;14m[1msupported[0m[38;5;14m[1m [0m[38;5;14m[1mCommon[0m[38;5;14m[1m [0m[38;5;14m[1mLisp[0m[38;5;14m[1m [0m[38;5;14m[1mimplementation[0m[38;5;12m [39m
|
||
[38;5;12m(https://common-lisp.net/project/slime/doc/html/Platforms.html#Platforms).[39m[38;5;12m [39m[38;5;12mSee[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;14m[1mSLIME[0m[38;5;14m[1m [0m[38;5;14m[1mmanual[0m[38;5;12m [39m[38;5;12m(https://common-lisp.net/project/slime/doc/html/)[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mdetails.[39m
|
||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mCommon[39m[38;5;12m [39m[38;5;12mLisp[39m[38;5;12m [39m[38;5;12mCookbook[39m[38;5;12m [39m[38;5;12mhas[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12minformation[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;14m[1minstalling[0m[38;5;14m[1m [0m[38;5;14m[1man[0m[38;5;14m[1m [0m[38;5;14m[1mimplementation[0m[38;5;12m [39m[38;5;12m(https://lispcookbook.github.io/cl-cookbook/getting-started.html)[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mimplementation[39m[38;5;12m [39m[38;5;12mmanager[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;14m[1mRoswell[0m[38;5;12m [39m
|
||
[38;5;12m(https://github.com/roswell/roswell/wiki),[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mDocker.[39m
|
||
|
||
[38;2;255;187;0m[4mOnline References[0m
|
||
[38;5;12m- [39m[38;5;14m[1mThe Common Lisp Hyperspec (CLHS)[0m[38;5;12m (http://www.lispworks.com/documentation/common-lisp.html) - [39m[48;2;30;30;40m[38;5;13m[3mThe[0m[38;5;12m language reference document for Common Lisp. Bookmark it now.[39m
|
||
[38;5;12m - [39m[38;5;14m[1mChapter 7[0m[38;5;12m (http://www.lispworks.com/documentation/HyperSpec/Body/07_.htm) - Covers the Common Lisp Object System (CLOS).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mThe ANSI Common Lisp Standard Draft[0m[38;5;12m (http://cberr.us/tech_writings/notes/common_lisp_standard_draft.html) - The last draft version of the ANSI INCITS 226-1994 (previously ANSI X3.226-1994) standard.[39m
|
||
[38;5;12m - The draft is free, the standard isn't.[39m
|
||
[38;5;12m - It's pretty much the same as the official standard, and some people prefer it to the CLHS.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mThe Common Lisp Cookbook[0m[38;5;12m (http://lispcookbook.github.io/cl-cookbook/) - A list of useful Lisp recipes. Also contains a list of other online sources of CL information.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCommon Lisp the Language (2nd Edition) by Guy L. Steele[0m[38;5;12m (https://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html) - A description of the Common Lisp language from just before it was standardized by ANSI. Don't use it as a reference.[39m
|
||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mCliki[0m[38;5;14m[1m [0m[38;5;14m[1mon[0m[38;5;14m[1m [0m[38;5;14m[1mCLtL2[0m[38;5;12m [39m[38;5;12m(https://cliki.net/Getting+Started)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mClaims[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mhas[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12museful[39m[38;5;12m [39m[38;5;12mdescriptions[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;14m[1mLOOP[0m[38;5;12m [39m[38;5;12m(http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/cltl/clm/node235.html#SECTION003000000000000000000)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;14m[1mFORMAT[0m[38;5;12m [39m
|
||
[38;5;12m(http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/cltl/clm/node200.html)[39m[38;5;12m [39m[38;5;12mthan[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mCLHS[39m[38;5;12m [39m[38;5;12mdoes.[39m
|
||
[38;5;12m - [39m[38;5;14m[1mStack Overflow on CLtL2[0m[38;5;12m (https://stackoverflow.com/questions/108537/what-are-the-main-differences-between-cltl2-and-ansi-cl) - Some recommend using CLtL2 for insight and inspiration, but to use the CLHS when programming.[39m
|
||
[38;5;12m - [39m[38;5;14m[1mA list of differences between CLtL2 and the ANSI Common Lisp specification.[0m[38;5;12m (http://linuxfinances.info/info/commonlisp.html#AEN9679)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mChapter 28[0m[38;5;12m (https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node260.html#SECTION003200000000000000000) - Covers the Common Lisp Object System.[39m
|
||
|
||
[38;2;255;187;0m[4mOnline Books[0m
|
||
[38;5;12mThese books that are freely accessible online, arranged roughly in order from basic to advanced:[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mCommon[0m[38;5;14m[1m [0m[38;5;14m[1mLisp:[0m[38;5;14m[1m [0m[38;5;14m[1mA[0m[38;5;14m[1m [0m[38;5;14m[1mGentle[0m[38;5;14m[1m [0m[38;5;14m[1mIntroduction[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mSymbolic[0m[38;5;14m[1m [0m[38;5;14m[1mComputation[0m[38;5;14m[1m [0m[38;5;14m[1mby[0m[38;5;14m[1m [0m[38;5;14m[1mDavid[0m[38;5;14m[1m [0m[38;5;14m[1mS.[0m[38;5;14m[1m [0m[38;5;14m[1mTouretzky[0m[38;5;12m [39m[38;5;12m(http://www.cs.cmu.edu/~dst/LispBook/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mgood[39m[38;5;12m [39m[38;5;12mintroduction[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mpeople[39m[38;5;12m [39m[38;5;12mnew[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mprogramming.[39m[38;5;12m [39m[38;5;12mContains[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mreally[39m[38;5;12m [39m[38;5;12museful[39m[38;5;12m [39m[38;5;12mutilities[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;14m[1mDTRACE[0m[38;5;12m [39m
|
||
[38;5;12m(http://www.cs.cmu.edu/~dst/Lisp/dtrace/)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;14m[1mSDRAW[0m[38;5;12m [39m[38;5;12m(http://www.cs.cmu.edu/~dst/Lisp/sdraw/).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCommon Lisp: An interactive approach by Stuart C. Shapiro[0m[38;5;12m (https://www.cse.buffalo.edu/~shapiro/Commonlisp/) - A textbook that teaches mainly through the use of exercises.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPractical Common Lisp by Peter Seibel[0m[38;5;12m (http://www.gigamonkeys.com/book/) - A great introduction for experienced programmers, and tries to highlight from the very beginning what makes CL different to other languages.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCommon Lisp Koans[0m[38;5;12m (https://github.com/google/lisp-koans) - Not exactly a book, but a set of koans to help you learn the language.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mOn Lisp by Paul Graham[0m[38;5;12m (http://www.paulgraham.com/onlisp.html) - A great book for intermediately experienced Lispers.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mLet Over Lambda by Doug Hoyte[0m[38;5;12m (https://letoverlambda.com) - An advanced book on Lisp Macros.[39m
|
||
[38;5;12m - The first six chapters are available online.[39m
|
||
[38;5;12m - [39m[38;5;14m[1mComments on Let Over Lambda[0m[38;5;12m (https://www.reddit.com/r/lisp/comments/3actsc/let_over_lambda/) - Several people recommend that you be comfortable with On Lisp before reading this book, and that the start is slow.[39m
|
||
[38;5;12m - [39m[38;5;14m[1mThe chapter on closures[0m[38;5;12m (https://letoverlambda.com/index.cl/guest/chap2.html) - Has several non-trivial examples, and demonstrates the power of this feature.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mParadigms of Artificial Intelligence Programming by Peter Norvig[0m[38;5;12m (https://github.com/norvig/paip-lisp) - Has many interesting applications of Lisp, but is no longer a good reference for AI.[39m
|
||
|
||
[38;2;255;187;0m[4mOffline Books[0m
|
||
[38;5;12mThese are books that you'll have to buy, or borrow from a library.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mLand of Lisp by Conrad Barski, MD[0m[38;5;12m (http://landoflisp.com) - A fun introduction to Lisp that uses comics and has you writing games.[39m
|
||
[38;5;12m - Available as an [39m[38;5;14m[1mebook[0m[38;5;12m (https://www.nostarch.com/lisp.htm). [39m
|
||
[38;5;12m - A couple of the LOOP macros are written [39m[48;5;235m[38;5;249mfor x for y...[49m[39m[38;5;12m which you can change to [39m[48;5;235m[38;5;249mfor x from 0 for y...[49m[39m[38;5;12m to make them work in SBCL.[39m
|
||
[38;5;12m - Has an [39m[38;5;14m[1merrata page[0m[38;5;12m (http://landoflisp.com/errata.html).[39m
|
||
[38;5;12m - Most of the book is entertaining and fairly easy, but gets hairy from about Chapter 18. It doesn't feel like later chapters introduce much, so I recommend switching to a different book at that point.[39m
|
||
[38;5;12m - The Web server example in Ch 13, 19 and 20 will only work on CLISP, and needs the addition of HTTP response headers to render the HTML properly.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mANSI Common Lisp by Paul Graham[0m[38;5;12m (http://www.paulgraham.com/acl.html) - Good as a reference, covers CLOS, and has several example program implementations.[39m
|
||
[38;5;12m - Plaintext versions of [39m[38;5;14m[1mChapter 1[0m[38;5;12m (http://lib.store.yahoo.net/lib/paulgraham/acl1.txt) and [39m[38;5;14m[1mChapter 2[0m[38;5;12m (http://lib.store.yahoo.net/lib/paulgraham/acl2.txt) are available online.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCommon Lisp Recipes by Edmund Weitz[0m[38;5;12m (http://weitz.de/cl-recipes/) - A great set of Common Lisp patterns.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mObject-Oriented[0m[38;5;14m[1m [0m[38;5;14m[1mProgramming[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mCommon[0m[38;5;14m[1m [0m[38;5;14m[1mLisp[0m[38;5;14m[1m [0m[38;5;14m[1mby[0m[38;5;14m[1m [0m[38;5;14m[1mSonya[0m[38;5;14m[1m [0m[38;5;14m[1mE.[0m[38;5;14m[1m [0m[38;5;14m[1mKeene[0m[38;5;12m [39m[38;5;12m(https://www.amazon.com/Object-Oriented-Programming-COMMON-LISP-Programmers/dp/0201175894)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12min-depth[39m[38;5;12m [39m[38;5;12mdescription[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mCLOS,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mshows[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mexample[39m[38;5;12m [39m
|
||
[38;5;12mapplications.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mThe Art of the Metaobject Protocol by Gregor Kiczales, Jim des Rivieres, and Daniel G. Bobrow[0m[38;5;12m (https://www.amazon.com/Art-Metaobject-Protocol-Gregor-Kiczales/dp/0262610744/) - Describes the CLOS Metaobject Protocol (MOP).[39m
|
||
[38;5;12m - [39m[38;5;14m[1mChapters 5 and 6 (available online)[0m[38;5;12m (http://metamodular.com/CLOS-MOP/) - The specification of a metaobject protocol extension to CLOS, by Robert Strandh.[39m
|
||
[48;5;235m[38;5;249m- Superseded by the **modern public domain CLOS MOP specification** (https://clos-mop.hexstreamsoft.com/) by Jean-Philippe Paradis (**Hexstream** (https://github.com/Hexstream)).[49m[39m
|
||
[38;5;12m - [39m[38;5;14m[1mAdam Tornhill on AMOP[0m[38;5;12m (http://www.adamtornhill.com/reviews/amop.htm) - Recommends reading Practical Common Lisp, then Object-Oriented Programming in Common Lisp, and then AMOP.[39m
|
||
|
||
[38;2;255;187;0m[4mOnline Community[0m
|
||
[38;5;12m- The [39m[38;5;14m[1mCliki[0m[38;5;12m (http://cliki.net) - The Common Lisp Wiki. A great resource for all things CL. Has a great [39m[38;5;14m[1mGetting Started[0m[38;5;12m (http://cliki.net/Getting+Started) page and an extensive list of [39m[38;5;14m[1mLisp books[0m[38;5;12m (http://cliki.net/Lisp%20books).[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12m#clschool,[39m[38;5;12m [39m[38;5;12m#lisp,[39m[38;5;12m [39m[38;5;12m#ccl,[39m[38;5;12m [39m[38;5;12m#sbcl[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;14m[1mother[0m[38;5;14m[1m [0m[38;5;14m[1mrooms[0m[38;5;12m [39m[38;5;12m(https://www.cliki.net/IRC)[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;14m[1mLibera.Chat[0m[38;5;12m [39m[38;5;12m(https://libera.chat/)[39m[38;5;12m [39m[38;5;12mnetwork[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mgreat[39m[38;5;12m [39m[38;5;12mplaces[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mlearning[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mCommon[39m[38;5;12m [39m[38;5;12mLisp.[39m[38;5;12m [39m[38;5;12m([39m[38;5;14m[1mFreenode[0m[38;5;14m[1m [0m[38;5;14m[1mshould[0m[38;5;14m[1m [0m[38;5;14m[1mbe[0m[38;5;14m[1m [0m[38;5;14m[1mavoided.[0m[38;5;12m [39m
|
||
[38;5;12m(https://gist.github.com/joepie91/df80d8d36cd9d1bde46ba018af497409))[39m
|
||
[38;5;12m- [39m[38;5;14m[1mLisp Subreddit[0m[38;5;12m (http://www.reddit.com/r/lisp/) - An active community, and has loads of useful links and reference documents in the sidebar.[39m
|
||
[38;5;12m - [39m[38;5;14m[1mCommon Lisp Subreddit[0m[38;5;12m (https://www.reddit.com/r/Common_Lisp) - The Subreddit for Common Lisp.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mExercism's Common Lisp track[0m[38;5;12m (https://exercism.org/tracks/common-lisp) - An excellent way to learn the language through practice, have your code reviewed, and to discuss solutions with other people.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mLisp Discord server[0m[38;5;12m (https://discord.gg/7tSq5EaA6Z) - Is a Discord for Lisp. Has a channel dedicated to Common Lisp and will happily answer questions.[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mLibrary Management[0m
|
||
[38;5;12mThese aren't libraries, but can help you find and install other libraries.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mQuicklisp[0m[38;5;12m (https://www.quicklisp.org/beta) - A package management platform for Lisp libraries.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mQuickdocs[0m[38;5;12m (http://quickdocs.org) - Documentation for projects in Quicklisp.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mState of the Common Lisp Ecosystem, 2015[0m[38;5;12m (http://borretti.me/article/common-lisp-sotu-2015) - Article about what libraries you should use, and why.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mArticulate Common Lisp[0m[38;5;12m (http://articulate-lisp.com/project/abcs.html) - Lists some useful libraries.[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mCommon Lisp Implementations[0m
|
||
[38;5;12mThis[39m[38;5;12m [39m[38;5;12msection[39m[38;5;12m [39m[38;5;12mlists[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mcommon[39m[38;5;12m [39m[38;5;12mCL[39m[38;5;12m [39m[38;5;12mimplementations[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mtheir[39m[38;5;12m [39m[38;5;12mmanuals[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12malphabetical[39m[38;5;12m [39m[38;5;12morder.[39m[38;5;12m [39m[38;5;12mUnless[39m[38;5;12m [39m[38;5;12motherwise[39m[38;5;12m [39m[38;5;12mnoted,[39m[38;5;12m [39m[38;5;12mthese[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mfree[39m[38;5;12m [39m[38;5;12msoftware[39m[38;5;12m [39m[38;5;12mimplementations.[39m[38;5;12m [39m[38;5;12mSee[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mCliki's[39m[38;5;12m [39m[38;5;12mlist[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;14m[1mfree[0m[38;5;14m[1m [0m[38;5;14m[1msoftware[0m[38;5;14m[1m [0m[38;5;14m[1mCommon[0m[38;5;14m[1m [0m[38;5;14m[1mLisp[0m[38;5;14m[1m [0m[38;5;14m[1mImplementations[0m[38;5;12m [39m
|
||
[38;5;12m(https://www.cliki.net/Common%20Lisp%20implementation).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAllegro Common Lisp (ACL)[0m[38;5;12m (https://franz.com/products/allegrocl/) - Commercial, but has a free [39m[38;5;14m[1mExpress Edition[0m[38;5;12m (https://franz.com/downloads/clp/survey).[39m
|
||
[38;5;12m - [39m[38;5;14m[1mACL manual[0m[38;5;12m (https://franz.com/support/documentation/)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mTraining videos on YouTube[0m[38;5;12m (https://www.youtube.com/channel/UCN36UrxtyNBJPaG0kmBJNRw)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCLISP[0m[38;5;12m (https://clisp.sourceforge.io)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mCLISP Manual[0m[38;5;12m (https://clisp.sourceforge.io/impnotes.html)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mClozure Common Lisp (CCL)[0m[38;5;12m (https://ccl.clozure.com)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mCCL manual[0m[38;5;12m (https://ccl.clozure.com/manual/)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCarnegie Mellon University Common Lisp (CMUCL)[0m[38;5;12m (https://www.cons.org/cmucl/)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mCMUCL manual and other useful information[0m[38;5;12m (https://www.cons.org/cmucl/doc/index.html)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mEmbeddable Common Lisp (ECL)[0m[38;5;12m (https://common-lisp.net/project/ecl/)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mECL manual[0m[38;5;12m (https://common-lisp.net/project/ecl/static/manual/)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mLispWorks[0m[38;5;12m (http://www.lispworks.com/products/index.html) - Commercial, but as mentioned previously, has a [39m[38;5;14m[1mPersonal Edition[0m[38;5;12m (http://www.lispworks.com/downloads/index.html) with minor limitations.[39m
|
||
[38;5;12m - [39m[38;5;14m[1mLispWorks manual[0m[38;5;12m (http://www.lispworks.com/documentation/index.html)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mSteel Bank Common Lisp (SBCL)[0m[38;5;12m (http://www.sbcl.org) - My personal favorite.[39m
|
||
[38;5;12m - [39m[38;5;14m[1mSBCL manual[0m[38;5;12m (http://www.sbcl.org/manual/index.html)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mScieneer Common Lisp (SCL)[0m[38;5;12m (http://web.archive.org/web/20171014210404/http://www.scieneer.com/scl/) - A commercial Linux and Unix implementation, but has an unrestricted free evaluation and non-commercial use version.[39m
|
||
[38;5;12m - [39m[38;5;14m[1mSCL manual[0m[38;5;12m (http://web.archive.org/web/20171014210404/http://www.scieneer.com/scl/doc/)[39m
|
||
|
||
[38;2;255;187;0m[4mCredit[0m
|
||
[38;5;12mI[39m[38;5;12m [39m[38;5;12mgot[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mlot[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12minformation[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;14m[1mRainer[0m[38;5;14m[1m [0m[38;5;14m[1mJoswig's[0m[38;5;14m[1m [0m[38;5;14m[1mStack[0m[38;5;14m[1m [0m[38;5;14m[1mOverflow[0m[38;5;14m[1m [0m[38;5;14m[1manswer[0m[38;5;14m[1m [0m[38;5;14m[1mon[0m[38;5;14m[1m [0m[38;5;14m[1mlearning[0m[38;5;14m[1m [0m[38;5;14m[1mCommon[0m[38;5;14m[1m [0m[38;5;14m[1mLisp[0m[38;5;12m [39m[38;5;12m(https://stackoverflow.com/a/7224914/1005039),[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mnow-defunct[39m[38;5;12m [39m[38;5;12mStack[39m[38;5;12m [39m[38;5;12mOverflow[39m[38;5;12m [39m[38;5;12mDocuments[39m[38;5;12m [39m[38;5;12msite.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;14m[1mCliki's[0m[38;5;14m[1m [0m[38;5;14m[1mGetting[0m[38;5;14m[1m [0m[38;5;14m[1mStarted[0m[38;5;12m [39m
|
||
[38;5;12m(https://cliki.net/Getting%20Started)[39m[38;5;12m [39m[38;5;12mpage[39m[38;5;12m [39m[38;5;12mwas[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12minvaluable.[39m
|