λ ちいラボの Lisp 講座

関連記事

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でコードを書く

2.1. Common LispでAtCoder

3. Common Lispを使える環境にする

4. Common Lispの特徴は?

5. TODO

  • SchemeやISLisp、Clojureや元祖のLispも