#:g1: hu.dwim.common-lispの紹介

Posted 2014-05-26 05:45:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の146日目です。

hu.dwim.common-lispとはなにか

 hu.dwim.common-lispは、dwim.huの人達がカスタマイズしているcommon-lispパッケージです。

パッケージ情報

パッケージ名hu.dwim.common-lisp
Quicklisp
CLiKihttp://cliki.net/hu.dwim.common-lisp
Quickdocshttp://quickdocs.org/hu.dwim.common-lisp

インストール方法

(ql:quickload :hu.dwim.common-lisp)

試してみる

 どんな関数があるかは、Quickdocsで確認できます。

 定義といっても

(defpackage :hu.dwim.common-lisp)

(let ((package (find-package :hu.dwim.common-lisp)) ;; TODO: add get, but is used at several places currently (shadowed-symbols '(set))) (do-external-symbols (symbol (find-package :common-lisp)) (unless (member symbol shadowed-symbols) ;; do take care of the symbol nil: (list nil)! (let ((symbol (or symbol (list nil)))) (import symbol package) (export symbol package)))))

これだけです。
やっていることといえば、setという名前のシンボル以外はCLパッケージからインポートして、エクスポートし直しているという感じです。
:shadowing-import-fromを利用すれば良いのではとも思いますが、何か理由があるのでしょう。

 名前が基盤っぽいので、hu.dwimのパッケージは基本的にこれを使っているのだろうかと思い、ちょっと調べてみましたが、依存しているパッケージは、hu.dwim.walkerと、hu.dwim.reiterate位の様です。

まとめ

 今回は、hu.dwim.common-lispを紹介してみました。
当初は基盤として利用するつもりが、そのままcommon-lispを利用しちゃってた、というところなのでしょうか。

comments powered by Disqus