1. どの Lisp ?
Lispは、とっつきにくく見えるのか、GitHubの公開コードでの採用状況を見ると、Lisp系全体でも0.2%程度と極めて小規模です。
にもかかわらず、Lisp の中にはいろんな派生があり、それぞれのLisp 方言は、 C, C++, Object C, Java ぐらいのけっこうな差異があります。
| Lisp方言 | GitHub全体シェア | GitHub言語順位(目安) | 主用途 |
|---|---|---|---|
| Emacs Lisp | 約0.10% | 約31位 | Emacs拡張 |
| Clojure | 約0.07% | 約32位 | JVMバックエンド |
| Common Lisp | 約0.01〜0.02%(推定) | 50位以下 | 汎用Lisp・研究 |
| Scheme / Racket | 約0.01%未満(推定) | 50位以下 | 教育・言語研究 |

LispらしいLispと言えば、柔軟なCommon Lispと洗練されたSchemeだと思いますが、GitHubプロジェクトのシェアは意外と少ない。
個人的には、理論的で美しいのはSchemeだと思いますが、書いてて楽しいのはCommon Lispな気がします。
Scheme (再帰):
(define (make-naturals n)
(let iter ((i n) (acc '()))
(if (= i 0)
acc
(iter (- i 1) (cons i acc)))))
Code language: Scheme (scheme)
Common Lisp (loop):
(defun make-naturals (n)
(loop for i from 1 to n
collect i))
Code language: Lisp (lisp)

defunとか、carとかの魔術的な感じも好みがありそう
2. Common Lispでコードを書く
- AtCoder Beginners Selectionで学ぶ、Common Lisp 入門 – Chiilabo Note
- ABC A問題で学ぶ Common Lisp 入門 – Chiilabo Note
- Common Lispでコードリーディング – Chiilabo Note
- CSV分析ツールを作りながら学ぶ、Common Lisp入門(SBCL) – Chiilabo Note
2.1. Common LispでAtCoder
- 【AtCoder ABC049C】白昼夢に悩まされた(Common Lisp) – Chiilabo Note
- 【AtCoder ABC449D】Make Target 2を考える(Common Lisp) – Chiilabo Note
- 【Common Lisp】AtCoderのコードにテストを埋め込む(フィーチャーフラグ) – Chiilabo Note
- 【Common Lisp】 loop の基本の使い方と構文 – Chiilabo Note
- 【Common Lisp】リストの基本的な使い方 – Chiilabo Note
- 【Common Lisp】 make-array で作る1次元配列の使い方(vector) – Chiilabo Note
3. Common Lispを使える環境にする
- 一からはじめる Common Lisp で AtCoder(VS Code環境構築ガイド) – Chiilabo Note
- 【SLIME】EmacsでCommon Lispを動かす(SBCL) – Chiilabo Note
- 【SLDB】EmacsでLispを動かしていて、 SLIMEが固まったら?(Common Lisp) – Chiilabo Note
- 【SBCL】Common Lispで簡単なコンソールプログラムをコンパイルする – Chiilabo Note
- 【Common Lisp】コードの修正で自動テストするには?(Parachute) – Chiilabo Note
- Common Lisp で「リファクタリング」を考える – Chiilabo Note
- 【Common Lisp】コードのパフォーマンスを、 time と sb-sprof で調べる(SBCL) – Chiilabo Note
- 【Emacs】Common LispのLoopインデントが深い?(lisp-loop-indent-subclauses) – Chiilabo Note
- 【Emacs】SmartParensのよく使う操作(SlurpとBarf) – Chiilabo Note
- Common Lispの計算結果をGNUplotで図示する – Chiilabo Note
4. Common Lispの特徴は?
- Lispで考えると変数という雑音が少ない – Chiilabo Note
- Lispでパイプライン的に考える(即時評価と遅延評価) – Chiilabo Note
- Common Lispの文字や関数の書き方とリーダーマクロ – Chiilabo Note
- Comon Lispのlabelsとgoto構文(再帰の最適化) – Chiilabo Note
- Common Lispの定数宣言とヒープ最適化(defconstant) – Chiilabo Note
- 【Common Lisp】 loop の成り立ちを考える(CLISPとDSL) – Chiilabo Note
- Common Lisp で「リファクタリング」を考える – Chiilabo Note
- 【Common Lisp】svrefの役割とarefで十分な理由(歴史と効率性) – Chiilabo Note
- Common Lispを書きながら、Cで考えているとき – Chiilabo Note
- Common Lispで関数の「静的変数」を作るレキシカルクロージャ(メモリ割り当ての省略) – Chiilabo Note
- 【Common Lisp】ペアノの公理と加算器をつなぐ(表現が決める計算効率) – Chiilabo Note
5. TODO
- SchemeやISLisp、Clojureや元祖のLispも