紹介するライブラリの候補リスト

anaphoraを紹介したのち、しばらくライブラリ入門の更新を行なっていませんが、また時間を見つけて更新しようと思っています。

備忘のため、今後紹介していこうと思っているライブラリをメモしておきます。

汎用系
マッチング
ファイル・パスネーム
数値計算
Webサーバ
  • Hunchentoot
私はANSI Common Lisp標準のloopマクロも別に嫌いではないので、loopマクロを使って書くことが多いですが、iterateパッケージを使って記述する人も多いと思います。iterateは非常に多くの機能があるため、紹介は比較的長期に渡って掲載していくことになろうかと思います。

optimaは日本人作者による著名なライブラリの一つで、汎用性のあるマッチングライブラリとしては最も使われているのではないかと思います。文字列のマッチング(正規表現)はCL-PPCREを、オブジェクトの並びのマッチングはoptimaを使うことが一般的です。

CL-FADはANSI標準であまり定められていないファイルシステム周りを補強するライブラリです。UIOP(ASDFに付属のライブラリ)がCL-FADの代替となることを目指していますが、CL-FADはCL-PPCREやHunchentootと同じ作者の有名かつ定番なライブラリであり、ドキュメントも充実していることからまだまだバリバリの現役です。

CSVファイルは私が個人的に最もよく使うファイルフォーマットのため、read-csvを中心に紹介しようと思います。

数値計算系は好みによって何を使うかは分かれますが、私はcl-num-utilsを使うことが多いので、cl-slice, array-operationsと共に紹介しようと思います。行列計算の場合はLLAやMGL-MATなどが射程に入ってきますが、LLAはCommon LispからBLAS (Basic Linear Algebra Subprograms)を使用するツールであり、かなり応用に近いと思われるため、紹介しないと思います。

Web系は日本人開発者も多い分野ですが、個人的にはHunchentootを紹介したいです。HunchentootはCommon Lispで作成された最も一般的なWebサーバであり、CLOS (Common Lisp Object System)を用いて実装されているため、CLOSの勉強になります。処理能力は必ずしも高くないですが私自身もHunchentootを使いながらCLOSを肌で覚えたようなところがありますし、実際に別のサーバーではHunchentootを動かして娘の写真を遠くに住んでいるおじいちゃん・おばあちゃんに届けるWebサイトを管理していますので、Hunchentootを紹介したいと思っています。Hunchentootも機能が多岐に渡りますが、英語のドキュメントはとても充実しているので、日本語ベース・サンプルベースで簡潔に紹介したいと考えています。

実践で見ればスレッド系やテスト系のライブラリも必要かもしれませんが、現在はとりあえず以上のライブラリをのんびりと紹介していきたいと思っていますので、引き続きよろしくお願いします。

2 件のコメント :

  1. closer-mopの解説をする予定はありませんか?

    返信削除
    返信
    1. コメントありがとうございます。

      今のところ、closer-mopを紹介する予定はありません。
      必要に応じてMeta Object Protocol (MOP) も紹介する可能性がありますが、現在はCommon Lisp Cheat Sheetの充実を優先しているため、closer-mopを紹介するとしてもかなり後になると思います。

      ちなみに、次回のCheat SheetではCLOSを取り上げようと思っています。

      引き続き、よろしくお願いいたします。(by 管理人)

      削除