κeenのHappy Hacκing Blog | Lispエイリアンの狂想曲

Common Lispの勉強をするには、あるいは情報を得るには

深町さんのブログで日本語でCommon Lispの質問をする方法が載ってましたが質問じゃなくて単に情報を得たい、勉強をしたいという場合が書かれてなかったので勝手に補遺。

処理系選び

処理系:選び方の目安 - Common LISP users jpCommon Lisp 処理系 - 紫藤のWikiが参考になるかと思います。

開発環境構築

Modern Common Lispあたりですかね。著者がちょっと古くなってきたので更新するって言ってました。

処理系のインストールなら*nix環境で使える拙作のCIMもあります。解説はこちら

入門

Web

私の一番のおすすめはM.HiroiさんのWebページです。一応Common Lispではなくxyzzyですがここで紹介されている内容であればCommon Lispにも共通します。
M.Hiroi’s Home Page / xyzzy Lisp Programming

書籍

  • 実践Common Lispは入門から実践までいけて素晴らしいです。内容の密度が濃いです。心無しか手にとってみると少し重いです。 loopやformatなど複雑な部分はしっかりベージを割いてるので入門が終わってもリファレンスとして役立ちます。私も今でも参照してます。
  • Land of Lispは挿絵が多く、少し学んでは実際に使ってみるのルーチンなので勉強のモチベーションを保ちやすいです。 内容は実践Common Lispに比べると細かな注釈が少ないかな?といったところ。さらっと読めて良いですね。
  • 実用Common Lisp(通称PAIP本)はぶ厚くて高い本。AI系の内容らしい。私は読んだことが無いのですが、数理システムが入門書として使ってるそうです。 2014-12-14 追記 読みました

何か作る

Web

あんまり情報無いですね…Lisperのみなさんもっとアウトプットしましょう。

リファレンス

Web

  • Common Lisp Hyper SpecはCommon Lispの機能をサンプルと共に網羅的に、詳細に紹介しています。英語です。 主にコンテンツからドリルダウンで調べていくと良いです。時間があればじっくり眺めても良いかも。 Common Lispをやる上では必ず必要になるので、英語ですが必ず友達になっておきましょう。
  • 逆引きCommon Lispは名前の通りやりたいことからCommon Lispの機能を調べられます。サンプルもあります。残念ながら網羅的ではないのですが凡その需要は満たせると思います。
  • Quickdocsはライブラリのドキュメントサイト(英語)。ライブラリを捜す時にも良いと思います。

書籍

  • COMMON LISP 第2版は通称cltl2と呼ばれるCommon Lispの原典の和訳です。一応紹介しました。今のCommon LispはANSI Common Lispになってるので少し違います。

ポータルサイト

  • Common LISP users jpは日本語で様々な情報が得られます。
  • redditの/r/lisp_jaにはLispに関連するWebページの情報が日々投稿されています。
  • CLikiはCommon Lispの総合Wiki(英語)。非常に有用な情報が溜まってます。
  • Common-Lisp.netはCommon Lispのコミュニティ支援サイト(英語)。多くのプロジェクトをホストしていて、そのWebページなんかもあります。

ソースコードを読む

κeenの適当チョイスです。他にお勧めがあれば教えて下さい。

  • alexandriaは有名なユーティリティパッケージ。小さな関数やマクロで構成されてるのでイディオム集みたいな感じで読めると思います。
  • log4clはログライブラリ。ドキュメント(英語)をしっかり書いてるので読み易いです。
  • HunchentootはWebサーバ。ドキュメント(英語)を過剰に書いてるので読める筈。

ステップアップ

Web

  • On Lispは主にマクロについて書かれたCommon Lispプログラミングの指南書。書籍もありますが、Web版もあります。

書籍

  • Let Over Lambda(通称LOL)は過激とか狂気とか宗教とか言われるエッセイ。高速化の話とかクロージャの危ない使い方とかが書かれてます。

Lisperとコミュニケーションをとる

  • Shibuya.lispは渋谷を中心に半径2万kmを対象としたLispコミュニティ。毎月下旬の平日夜にLisp Meet Upをやってるのでひょこっとやってくると良いと思います。内容はCommon Lisp, Scheme, Clojureで回してるのでCommon Lisp回は3ヶ月に1回ですが毎回Common Lisperは来てるので別のLispの回でも構わず参加すると良いと思います。 #lispmeetup の情報はここから入手するのが良いかな?あとはTwitterアカウントもあります。Ustream配信もしてます。
  • IRCの#lisp-ja@irc.freenode.orgと#common-lisp-ja@irc.freenode.orgにコミュニティがあります。常に誰かがいる訳ではないのですがちょくちょく見てる人はいるので発言してみると反応があるかもしれません。今もこの投稿に対して反応があってCIMとredditの項目を追加しました。
Written by κeen
Later article
C6H6+HNO3