実践Common Lispを読んでみる3

実践Common Lisp

実践Common Lisp

今日は36ページまで。やっとマクロが出てきたところ。第三章が終了したことになる。

  • マクロ。やっぱりわかりにくい。なんかスゴいんだけどスゴすぎてよくわからない。

第4章は読むだけにする。
書いても面白くなさそうな感じ。
以下、ソースコード

(defun make-comparison-expr (field value)
  `(equal (getf cd ,field) ,value))
(defun make-comparison-list (fields)
  (loop while fields
       collecting (make-comparison-expr (pop fields) (pop fields))))
(defmacro where (&rest clauses)
  `#'(lambda (cd) (and ,@(make-comparison-list clauses))))

http://dl.getdropbox.com/u/228440/veleno-samples/lisp-samples/sample.lisp