Peter Lane: Scrapbook
A small collection of links, notes and a technical Diary.
- Contact
- Email: peterlane@gmx.com
- or use this form: https://letterbird.co/peterlane
- Software
Common Lisp
- ABCL - Lisp on the JVM, useful when you need it.
- CLISP - not updated for a while, but seems robust and has a friendly REPL.
- SBCL - fast and up-to-date, I use this most of the time.
Documentation
Books:
- On Lisp, by Paul Graham - advanced level macros
- Paradigms of Artificial Intelligence Programming, by Peter Norvig - advanced level
- Practical Common Lisp, by Peter Seibel - intermediate level
Libraries
Many libraries are listed on common-lisp.net and/or available through quicklisp.
Libraries are based around:
I often use the following:
- clingon - command-line arguments
- metabang-bind - destructuring/multiple-value bindings
- parachute - testing framework
- str - string library
- trivia - pattern matching
Projects of my Own
Project | Description |
---|---|
baruch | Writes Common Lisp documentation in asciidoc format. |
CHREST-AVOW | Customised implementation of CHREST for working with AVOW diagrams. |
confusion-matrix | Library to construct a confusion matrix and retrieve statistical information from it. |
GEMS Evolve | A genetic programming library, experiment setup and analysis tools for GEMS project. |
LTk examples | tkdocs tutorial examples for LTk. |
LTk Plotchart | A wrapper around tklib’s plotchart library to work with LTk / nodgui. |
mini-CHREST | MiniCHREST and Perceptron code. |
range-object | An implementation of range objects in Common Lisp. |
Smaller puzzles:
Also on Bitbucket are:
- projects - copies of all my Lisp projects, including clones of those elsewhere; and
- snippets - examples of Lisp code
Why Lisp?
There are all kinds of arguments for why Lisp is a great language to use. Many of these go over my head, as I'm more of a hobbyist and use Lisp "like any other language". It offers a nice mix of procedural, functional, and object-oriented features. Macros? Yes, in small doses. Live images? Not so much. Reader macros? ?
I also like that the language does not change - it's not dead, implementations and libraries are updated continuously, but there are no new language features to keep up with.
If you need some technical arguments, see where Lisp sits between C/Rust/Go and your friend's favourite dynamic language in Table 4 of the paper: Ranking programming languages by energy efficiency.