はじめてのCommon Lisp

この間から実践Common Lispという本を買ってきて、Common Lispの勉強を始めました。
実践Common Lisp
第1章はCommon Lispとはどんな言語?という説明、第2章は開発環境についてとHello Worldを作ってみるところまで。
で、第3章からはいきなり「実践:簡単なデータベース」っていう内容になってる。データベースと言ってもここでは、PostgreSQLMySQLといったいわゆるRDBMSではないんだけどね。
ここでデータベースといっているのはグローバル変数として定義されたリストのことです。でこの中に、CDの情報(タイトルとかアーティストとか)をどんどん詰め込んで行ったり、CDを検索したり、CDの内容を更新したり削除したり、ということを行っています。

CDの情報は、属性リスト(plist)と呼ばれるハッシュとか連想配列とかそうい感じのものを使って洗わされる。キーと値のペアで格納される例のアレw
使うときはこんな感じになる。

CL-USER> (list :title "誕生" :artist "尾崎 豊") ;属性リストを作ってみたところ。
(:TITLE "誕生" :ARTIST "尾崎 豊")
CL-USER> (getf (list :title "誕生" :artist "尾崎 豊") :title) ;属性リストからキーを指定して値を取り出しすほうほう。
"誕生"

getfの一つ目の引数は属性リストを指定し、次にキーとなるシンボルを指定すると、属性リストのキーと一致する値を返すと。

と、まぁ、この様な感じで属性リストに対する操作を駆使(?)しつつ、リストをループしながら、一致するレコードを検索したり更新したり削除したりするロジックを、教えてもらいながらやっている感覚で勉強することが出来るなかなかいい本ですよ。

その他にも、登録したデータをファイルに保存したり読み込んだり、コンソールからの入力を受け取ったり、無名関数つかったりマクロ作ったりとかなり盛りだくさんな感じ。でも結構サラッとながしてるのでここはとりあえず、Common Lispではこんなことできるんだよっていうパフォーマンスのような、Common Lispに親しんでもらえるようにという計らいの章なのかもしれない。

取り合えず、Common Lisp知らなくても読み進められるというか、ここは本を見ながら一緒に動かしてみよう的な感じなので、もし、まったくLisp系言語の経験がなくてもまったく気にしなくていいような気もする。その証拠に4章から22章くらいまではきっちり言語について勉強するような内容になっている(目次を見る限りはw)

なんか、本の紹介になってしまった。しかし、まだ、3章までしか読んでないんです。すみません。