Programming Languages
Contents
LISPs
Scheme
Scheme is a variant of LISP that was famously used at MIT to teach students about functional programming concepts. It is also used in the GNU Guile extension language.
Some resources are:
- Structure and Interpretation of Computer Programs (SICP) book.
- SICP programming course from MIT is free.
- Learning GNU Guile variant of Scheme: https://www.gnu.org/software/guile/learn/
Common Lisp
Common LISP implementations tend to be much larger than Scheme, which makes it powerful for solving practical probems, but this large feature set could be a bit of a distractor when first starting out.
- Differences between Scheme and Lisp are descibed at https://wiki.c2.com/?LispSchemeDifferences .
- SBCL (Steel Bank Common Lisp) is a good choice, particularly when combined with Emacs and SLIME. Instructions for setting it up are available at https://github.com/rabbibotton/clog/blob/main/LEARN.md .
- Document on Good Lisp Programming Style
- Online version of Peter Norvig’s PAIP [Paradigms of AI Programming]
- “On Lisp” by Paul Graham is now available for free.
Emacs Lisp
This is of course a good one to learn if you use the Emacs editor. Since it is already well integrated into the editor, no need to waste time setting up external compilers and connectors such as SLIME.
- Elisp is well documented in the Emacs Manual and the Emacs help system. Examples:
- it has powerful tools such as Edebug, profilers, regression testing, benchmarkers, …
- it is single-threaded, so may not be suitable for some applications.