2008年11月3日月曜日

ANSI Common Lispを覗いてみようかと

Common Lisp 入門とCommon Lisp ドリルをとりあえず読了した。

CLドリルをやるときにCL入門を復習したので、入門2回、ドリル1回。

これ、まだ回数が少なくて、この2つに書かれていることを頭と体にしみこませるために何度もやったほうがいいと思う。

が、、、少し気分転換もしたい。。。そこで考えた。


  • CL入門からさらにつっこんで言語仕様よりを攻めるなら、ANSI仕様を読み込むのがよさそうだなぁ。あれ、丁寧に書かれているし。
  • でも、今は、CLを使った書き振りになれることを先に進めたい気分。
  • 実践CLをもう一度やる(今度は日本語)というのもありだなぁ。
  • しかし、もうちょっと書き振りの基本をやりたいなぁ。CLによるアルゴリズム入門みたいなのがあればほんとはいいだけど。
  • Paul GrahamのANSI Common Lispって実はそこらへんだったり???
  • ちょっと覗いてみよう。

というわけで初PGです。

【CLドリル】12 プログラミング

じわじわ。

  • compiler-letはCLtL1のみでありANSIでは廃止。aclでは、:ctlt1モジュールで互換性のための対応をしている。
  • う、あとちょっとでゴールというところで、なぜかキーボードがおかしい。Kinesisで、なぜかC-sがきかないようだ。s単体はきくんだけど。なんとかやりきった。

おお!ついにCLドリル 225問を完了した!!!
とりあえず、寝よう!

【CLドリル】12 プログラミング

じわじわ。12 プログラミング。まずCL入門の復習から。
モジュールの説明が簡易なのでよくわからないが、とりあえず完了。

【CLドリル】11 入出力 (その5)

じわじわ。11.6 文字列に対する入出力 から。

  • 11.6.1 append-stringsの作成
  • 11.6.2 count-words, count-words-in-stringの作成
  • 11.6.3 count-words-in-fileの作成
  • 11.7.1 NOT入力マクロ(~)の作成
  • 11.7.2 システムのマクロ文字の調査
  • 11.8.1 ベクタシャープマクロ(#v)の作成
  • 11.9.1 display-shipの作成
  • 11.9.2 11.5.2のformat版作成
  • 11.9.3 backup-fileの改良
  • 11.9.4 convertの改良
  • 11.9.5 convertの改良 (warn)
  • 11.9.6 dateの作成
  • 11.9.7 インタープリタ (5)

4時間くらいかかったが、なんとか完了。おおきなひっかかりはなかった。
次回は、ついに最終章。12 プログラミング。

2008年11月2日日曜日

【CLドリル】11 入出力 (その4)

11.4 文字の入出力から。

  • 11.4.1 calc

    • 簡単な計算機をつくる問題。
    • *terminal-io*の振舞いの理解に自身がもてなくて、てまどったがなんとか完了。

  • 11.4.2 エイト・クイーン (2)
  • 11.5.1 *trace-output*の取扱い
  • 11.5.2 with-open-fileの練習
  • 11.5.3 with-open-fileの練習
  • 11.5.4 copy-fileの作成
  • 11.5.5 count-linesの作成
  • 11.5.6 backup-fileの作成
  • 11.5.7 show-fileの作成

calc以降はさくさく。とりあえず、いったん休憩。じわじわ。

2008年11月1日土曜日

【CLドリル】11 入出力 (その3)

11.3 データの入力まで終了。
体調の悪さから、後半集中力がだめだった。
休んで体調を戻すのを優先する。。。
じわじわ。

【CLドリル】11 入出力 (その2)

じわじわ。

  • 11.3 データの入力
  • 11.4 文字の入出力

    • unread-charの振舞がちょっとわからない。CL入門でもHyperSpecでもunread-charするときは引数に直前にread-charした文字を指定する、とある。しかし、別の文字を指定してもunread-charは動くようだ。なんかおかしい。

  • 11.5 ファイル・システム
  • 11.6 文字列に対する入出力
  • 11.7 入力マクロ
  • 11.8 シャープ・マクロ
  • 11.9 フォーマット出力

後半はサクっとできた。しかしこれ、まだCL入門の復習にすぎない。
これからCLドリルへ。