ダグ・ホイト : LET OVER LAMBDA |
作成日: 2010-03-21 最終更新日: |
Common Lisp の特長であるマクロを十分に活かす技法を余すところなく述べる。
マクロは難しい。それ以前に Common Lisp が難しい。あのカッコが難物である。 たとえば、同書 30 ページの BLOCK-SCANNER という関数を見てみよう。定義は次の通り。
(defun block-scanner (trigger-string)
(let* ((trig (coerce trigger-string 'list))
(curr trig))
(lambda (data-string)
(let ((data (coerce data-string 'list)))
(dolist (c data)
(if curr
(setq curr
(if (char= (car curr) c)
(cdr curr) ; next char
trig)))) ; start over
(not curr))))) ; return t if found
結局これだけのコードを入力するのに骨が折れた。徐々にやっていこう。
書 名 | LET OVER LAMBDA |
著 者 | ダグ・ホイト |
訳 者 | 株式会社タイムインターメディアHOPプロジェクト |
発行日 | 2009年7月15日(初版) |
発行元 | エスアイビー・アクセス |
定 価 | 3200円(本体) |
サイズ | A5版 |
ISBN | 978-4-434-13363-3 |
その他 | 越谷市立南越谷図書館で借りて読む。 |
まりんきょ学問所 > 読んだ本の記録 > ダグ・ホイト : LET OVER LAMBDA