2008年12月27日土曜日

【実践CL】3 実践:簡単なデータベース

PCLの今回の学習では写経はしない。gigamonkeysからソースをダウンロードして、必要に応じてそれをいじっていくことにする。そこで、環境整備。ASDFのサイトを念のため確認。以下メモ。

  • 念のため、(require 'asdf)。
  • ASDF:*central-registry*に#P"/Users/aka/local/lib/cl/systems/"などを登録。
  • systems以下にpracticals.asdのsymlinkを置く。practicals.asdがdependしている各章のasdもsystemsにsymlinkを置く。
  • (asdf:oos 'asdf:load-op :practicals)を実行。すると
    Error: component :CL-PPCRE not found, required by #
    [condition type: MISSING-DEPENDENCY]
    と文句を言われる。これ去年も言われたなぁ。
  • CL-PPCREを本家からDL。pclのソースと似たような感じでasdfを配置。
  • (asdf:oos 'asdf:load-op :practicals)。
    mp3-browserでduplicate? なerrorがでる。とりあえずskipして通した後、再度(asdf:oos 'asdf:load-op :practicals)すると文句はでない。まあいいや。
  • 今回は3章なので、(asdf:oos 'asdf:load-op :simple-database)でよし。
  • 3章のpackage.lispを見るとsymbolsをexternalにしていないので、(in-package :com.gigamonkeys.simple-db)でやる。

さて、実践CL。

  • 前説

    • 要旨:小さな実例を示す。記述にはごまかしもあるが、気にするな。

  • 3.1 CDとレコード
  • 3.2 CDのファイリング
  • 3.3 データベースの中身を見てみる
  • 3.4 ユーザインタラクションを改善する
  • 3.5 データベースの保存と読み出し

    • 感想:ここまでについて。最初のチュートリアルが入出力ごりごりなのが、比類ないところ。

  • 3.6 データベースにクエリを投げる

    • 感想:うむ。lambdaによって周囲の文脈から意味がかわる関数を書ける、というのはやっぱりすごいな。
    • 感想:そして、最初のチュートリアルで高階関数がでてくるのもめずらしいのでは。

  • 3.7 既存のレコードを更新する -- もう1つのWHEREの使い道
  • 3.8 ムダを排除して勝利を収める

    • 感想:で、マクロについても同様。


こつこつ。

0 件のコメント: