Forked from digikar99/lisp-resources-digikar-2020.md
Created
November 9, 2023 04:35
-
-
Save dungsaga/511aec74e06405c6f4bfa6903e2bf36b to your computer and use it in GitHub Desktop.
Revisions
-
digikar99 revised this gist
Dec 16, 2021 . 1 changed file with 25 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,6 +3,22 @@ *If programming is more than just a means of getting things done for you, then Common Lisp is for you!* <!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc --> **Table of Contents** - [Opinionated Common Lisp Resources 2020](#opinionated-common-lisp-resources-2020) - [What is Common Lisp?](#what-is-common-lisp) - [Lisp for absolute beginners](#lisp-for-absolute-beginners) - [Common Lisp Learning Resources](#common-lisp-learning-resources) - [Libraries](#libraries) - [Programming Environment](#programming-environment) - [Communities](#communities) - [More Technical Documentation](#more-technical-documentation) - [Practical Reasons to use Common Lisp](#practical-reasons-to-use-common-lisp) <!-- markdown-toc end --> ### What is Common Lisp? A programming language. @@ -67,13 +83,17 @@ programmers onboard. ### Libraries Primarily, - [Awesome CL](https://github.com/CodyReichert/awesome-cl) list - [Quicklisp](https://www.quicklisp.org/beta/) But also: - [Ultralisp](http://ultralisp.org/) - [Quickdocs](https://quickdocs.org/) for searching libraries - [qlot](https://github.com/fukamachi/qlot) - [clpm](https://common-lisp.net/project/clpm/) - for the library APIs, I found the \"Packages\" section of libraries on [quickref](https://quickref.common-lisp.net/index-per-library.html) to be particularly useful Quicklisp is a distro-like common lisp package manager - there are @@ -99,7 +119,8 @@ Without Emacs: - try out [slima](https://atom.io/packages/slima) for Atom - atom-slime is no longer maintained! - [Alive](https://marketplace.visualstudio.com/items?itemName=rheller.alive) for VS Code For vim-users: - either go with emacs evil-mode with a [starter-kit](https://github.com/emacs-tw/awesome-emacs#starter-kit) @@ -169,4 +190,4 @@ Amidst all this, are there any practical reasons to use Common Lisp? [Check this answer on Quora](https://www.quora.com/What-is-your-favourite-non-mainstream-programming-language/answer/Shubhamkar-Ayare). *This article was originally published by me on my Wordpress blog*. -
digikar99 revised this gist
Nov 15, 2020 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -93,7 +93,7 @@ There's a read-worthy discussion discussing the two philosophies If the reader is okay with Emacs: - check out [Portacle](http://portacle.github.io/) - or install [quicklisp](https://www.quicklisp.org/beta/) and [SLIME](https://github.com/slime/slime)/[SLY](https://github.com/joaotavora/sly) (go figure!) Without Emacs: -
digikar99 revised this gist
Nov 9, 2020 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -127,7 +127,7 @@ uses interactive development! - [r/learnlisp](http://reddit.com/r/learnlisp) - [r/lisp](https://www.reddit.com/r/lisp/) - [r/common_lisp](https://www.reddit.com/r/Common_Lisp/) - [Discord Server](https://discord.gg/ywv48XN) - [comp.lang.lisp](https://groups.google.com/forum/#!forum/comp.lang.lisp) - There's also [LispForum](https://www.lispforum.com/) -
digikar99 revised this gist
Nov 8, 2020 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -23,7 +23,7 @@ possibilities, then welcome to the world of Common Lisp :)! After all this, if someone still wants to have a read at what is so special about lisp, have a read [here](http://www.defmacro.org/ramblings/lisp.html). (Very often, newcomers confuse CLisp with Common Lisp. (GNU) CLisp is just an implementation of Common Lisp. It isn't as good or as maintained as several other implementations, like, say SBCL. See [the last section](#more-technical-documentation) below.) -
digikar99 revised this gist
Nov 8, 2020 . 1 changed file with 20 additions and 8 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -23,10 +23,10 @@ possibilities, then welcome to the world of Common Lisp :)! After all this, if someone still wants to have a read at what is so special about lisp, have a read [here](http://www.defmacro.org/ramblings/lisp.html). (Very often, newcomers confuse CLisp with Common Lisp. (CNU) CLisp is just an implementation of Common Lisp. It isn't as good or as maintained as several other implementations, like, say SBCL. See [the last section](#more-technical-documentation) below.) ### Lisp for absolute beginners @@ -41,7 +41,14 @@ languages: ### Common Lisp Learning Resources For beginners: - [Touretzky's "Common LISP: A Gentle Introduction to Symbolic Computation"](https://www.amazon.com/Common-LISP-Introduction-Computation-Engineering/dp/0486498204) - or, [Graham's "ANSI Common Lisp"](https://www.amazon.com/gp/product/0133708756) For the former, be sure to pick up a post-1994 version, since it was in 1994 that Common Lisp gained ANSI standardization. For people with at least some programming background (1 year?) - [The Common Lisp Cookbook](http://lispcookbook.github.io/cl-cookbook/) @@ -86,12 +93,17 @@ There's a read-worthy discussion discussing the two philosophies If the reader is okay with Emacs: - check out [Portacle](http://portacle.github.io/) - or install [quicklisp](https://www.quicklisp.org/beta/) and [SLIME](https://github.com/slime/slime) (go figure!) Without Emacs: - try out [slima](https://atom.io/packages/slima) for Atom - atom-slime is no longer maintained! For vim-users: - either go with emacs evil-mode with a [starter-kit](https://github.com/emacs-tw/awesome-emacs#starter-kit) - or with pure vim, go with [slimv](https://www.vim.org/scripts/script.php?script_id=2531) or [vlime](https://github.com/vlime/vlime) If you want a bare bones REPL, [here's a three step guide for Ubuntu](https://github.com/LispCookbook/cl-cookbook/issues/293). @@ -111,11 +123,11 @@ uses interactive development! ### Communities - [stackoverflow](https://stackoverflow.com/). - [r/learnlisp](http://reddit.com/r/learnlisp) - [r/lisp](https://www.reddit.com/r/lisp/) - [r/common_lisp](https://www.reddit.com/r/Common_Lisp/) - [Discord Server](https://discord.gg/4kHR2g) (expired; perhaps ask someone at one of the other communities for the invite link) - [comp.lang.lisp](https://groups.google.com/forum/#!forum/comp.lang.lisp) - There's also [LispForum](https://www.lispforum.com/) @@ -157,4 +169,4 @@ Amidst all this, are there any practical reasons to use Common Lisp? [Check this answer on Quora](https://www.quora.com/What-is-your-favourite-non-mainstream-programming-language/answer/Shubhamkar-Ayare). *This article was originally published by me on my Wordpress blog*. -
digikar99 revised this gist
Oct 19, 2020 . 1 changed file with 2 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -156,3 +156,5 @@ consult. Amidst all this, are there any practical reasons to use Common Lisp? [Check this answer on Quora](https://www.quora.com/What-is-your-favourite-non-mainstream-programming-language/answer/Shubhamkar-Ayare). *This article originally published by me on my Wordpress blog*. -
digikar99 created this gist
Oct 19, 2020 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,158 @@ # Opinionated Common Lisp Resources 2020 *If programming is more than just a means of getting things done for you, then Common Lisp is for you!* ### What is Common Lisp? A programming language. *What is so special about it?* A part of the problem of explaining Common Lisp to non-lispers is that it is akin to explaining Calculus to a middle schooler - one needs *plenty* of concepts. Explaining something like python to a C programmer who has never used a higher level language would require explaining, perhaps, first order functions and the concept of objects. Explaining Common Lisp to a python programmer requires explaining macros (and the associated details about read-compile-run time), dynamic scoping, condition system, images, off the top of my head. Each of it can seem like a *what?* I don't mean this in a demeaning sense - one can get far by knowing just a few things; but if you are curious about the realm of programming possibilities, then welcome to the world of Common Lisp :)! After all this, if someone still wants to have a read at what is so special about lisp, have a read [here](http://www.defmacro.org/ramblings/lisp.html). (Edit: Very often, newcomers confuse CLisp with Common Lisp. CLisp is just an implementation of Common Lisp. It isn't as good or as maintained as several other implementations, like, say SBCL. See the last section below.) ### Lisp for absolute beginners These are not specifically for Common Lisp, but rather for Scheme and Racket, The things learnt here should be transferable to other languages: - [Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html) - Use [How To Design Programs](http://htdp.org) if SICP is too much - These use [Dr Racket](http://racket-lang.org/) ### Common Lisp Learning Resources For the ones with at least some background in programming (1 year?) - [The Common Lisp Cookbook](http://lispcookbook.github.io/cl-cookbook/) - [Practical Common Lisp](http://gigamonkeys.com/book/) - [Bagger's Little Bits of Lisp](https://www.youtube.com/watch?v=m0TsdytmGhc&list=PL2VAYZE_4wRJi_vgpjsH75kMhN4KsuzR_) - videos! This is very opinionated. A more larger list is available at the cookbook itself, the sidebar of [r/lisp](https://reddit.com/r/lisp), the [Common Lisp website](https://common-lisp.net/downloads) itself, [CLiki](https://www.cliki.net/), and probably at several other places. Here I wanted to achieve a balance between keeping the page short enough to avoid overwhelming as well as covering just enough to get new programmers onboard. ### Libraries - [Awesome CL](https://github.com/CodyReichert/awesome-cl) list - [Quicklisp](https://www.quicklisp.org/beta/) - [Ultralisp](http://ultralisp.org/) - [qlot](https://github.com/fukamachi/qlot) - for the library APIs, I found the \"Packages\" section of libraries on [quickref](https://quickref.common-lisp.net/index-per-library.html) to be particularly useful Quicklisp is a distro-like common lisp package manager - there are \"releases\" once every month or so. And there's a guarantee that all the packages in a particular release work together. However, if the one month development cycle is too long, there is the ultralisp that builds every 5 minutes, in that one doesn't have to wait for a month to fix bugs or get the latest libraries. However, there's no \"everything builds together\" guarantee. There's a read-worthy discussion discussing the two philosophies [here](https://lisp-journey.gitlab.io/blog/why-do-we-have-to-wait-one-month-before-quicklisp-updates/). ### Programming Environment If the reader is okay with Emacs: - check out [Portacle](http://portacle.github.io/) - or install quicklisp and SLIME (go figure!) Without Emacs: - try out [slima](https://atom.io/packages/slima) for Atom - atom-slime is no longer maintained! If you want a bare bones REPL, [here's a three step guide for Ubuntu](https://github.com/LispCookbook/cl-cookbook/issues/293). A good fun in using lisps is being comfortable with SLIME, that enables interactive development. I find this akin to going *inside *a building being constructed, with a hammer and several other tools, and then, incrementally modifying or building that building. [This video](https://www.youtube.com/watch?v=oufGYAAVLfQ&list=PL2VAYZE_4wRJi_vgpjsH75kMhN4KsuzR_&index=5) should illustrate the idea. [This](https://www.youtube.com/watch?v=sBcPNr1CKKw&list=PL2VAYZE_4wRIoHsU5cEBIxCYcbHzy4Ypj&index=4) provides a larger list of shortcuts, though, the most useful commands I find include `C-c C-c`, `M-.` and `M-,`. [This](https://www.youtube.com/watch?v=yY1FSsUV-8c) illustrates a wild combination of programming and concerts (yes, musical concerts!), that uses interactive development! ### Communities - [stackoverflow](https://stackoverflow.com/). - [r/learnlisp](http://reddit.com/r/learnlisp) - [r/lisp](https://www.reddit.com/r/lisp/) - [r/common_lisp](https://www.reddit.com/r/Common_Lisp/) - [Discord Server](https://discord.gg/4kHR2g) - [comp.lang.lisp](https://groups.google.com/forum/#!forum/comp.lang.lisp) - There's also [LispForum](https://www.lispforum.com/) While asking for help, it's a good practice to first google (or duckduckgo or whatever) your own query to see if it has been asked before. ### More Technical Documentation You don't want to read this! Go back! Common Lisp is an ANSI standard (standardized in 1994). This is the language. The language has implementations - SBCL, CCL, ABCL, ECL, CLISP, Clasp, Allegro CL, LispWorks, MOCL and may be a few more. The standard exists in the form of [The Common Lisp HyperSpec](http://www.lispworks.com/documentation/lw50/CLHS/Front/Contents.htm) - not very accessible we agree. There is an attempt to make the documentation more \"attractive\" at [The Common Lisp UltraSpec](https://phoe.tymoon.eu/clus/doku.php?id=clus:todo). Individual implementations also have manuals such as the [SBCL User Manual](http://www.sbcl.org/manual/) or the [CCL Manual](https://ccl.clozure.com/manual/) or the [ECL Manual](https://common-lisp.net/project/ecl/static/manual/) or err \... you got it! There's also the [Common Lisp Wiki](https://www.cliki.net/). I told you you shouldn't read this section! Go back to the previous sections and learn lisp. And then, come here if you want to do something mission critical! There are some very experienced lispers (the creators of these stuff themselves!) out in the community whom you should consult. ### Practical Reasons to use Common Lisp Amidst all this, are there any practical reasons to use Common Lisp? [Check this answer on Quora](https://www.quora.com/What-is-your-favourite-non-mainstream-programming-language/answer/Shubhamkar-Ayare).