入門GNU Emacsに書いてあった、load-pathに置いてあるファイルのソースを表示するライブラリを写経した。
(defun find-library-file (library) (interactive "sFind library file: ") (let ((path (cons "" load-path)) exact match elc test found) (while (and (not match) path) (setq test (concat (car path) "/" library) match (if (condition-case nil (file-readable-p test) (error nil)) test) path (cdr path))) (setq path (cons "" load-path)) (or match (while (and (not elc) path) (setq test (concat (car path) "/" library ".elc") elc (if (condition-case nil (file-readable-p test) (error nil)) test) path (cdr path)))) (setq path (cons "" load-path)) (while (and (not match) path) (setq test (concat (car path) "/" library ".el") match (if (condition-case nil (file-readable-p test) (error nil)) test) path (cdr path))) (setq found (or match elc)) (if found (progn (find-file found) (and match elc (message "(library file %s exists)" elc) (sit-for 1)) (message "Found Library file %s" found)) (error "Library file \"%s\" not found." library))))
なんとなくlispの書き方を理解。日本人が英語を勉強するときに、語順の違いに戸惑うのと同じ感じがした。
参考
- 作者: Debra Cameron,James Elliott,Marc Loy,Eric Raymond,Bill Rosenblatt,宮下尚,半田剣一,新井貴之,鈴木和也
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/03/12
- メディア: 大型本
- 購入: 14人 クリック: 331回
- この商品を含むブログ (117件) を見る