#:g1: onlispの紹介

Posted 2014-08-28 10:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の240日目です。

onlispとはなにか

 onlispは、ポール・グレアム氏のOn Lispに出てくるコードをLiam M. Healy氏がCLOCCの一部として纏めたものです。

パッケージ情報

パッケージ名onlisp
プロジェクトサイト CLOCC - Common Lisp Open Code Collection / Hg / [e6b24a] /src/onlisp/package.lisp

インストール方法

 CLOCCのプロジェクトサイトからダウンロードしてきて適当に導入します。

$ hg clone http://hg.code.sf.net/p/clocc/hg clocc-hg

で全体のソースも取得できます。
src/onlisp が目的のソースです。

試してみる

 onlisp-util.lispと、onlisp-app.lispに分かれていますが、onlisp-util.lispの方はユーティリティとして使えなくもない感じになっています。といっても本のコードを並べただけに近いので、利用に当ってもう少し整理する必要があるかなと思います。
パッケージ名は、onlisp等ではなく、何故かpaul-graham〈ニックネームはpg〉。

(pg:flatten (funcall (5am:gen-tree :size 10)))
;=>  (-9 5 7 -6 3 -9 -5 -4 0 3 8 2 5 9 2 5 0 -5 -7 2 7 3 -3 -7 5 -1 -6 -3 4 -6 -5 3
;     9 -2 -6 6 2 6 10 -7 7 6 7 -3 9 -3 8 10 -9 10 5 0 -6 3 -7 -1 -1 1 10 9 -10 3 9
;     9 -1 -1 9 -8 -1 -4 -4)

(pg:aif 3 pg:it) ;=> 3

(pg:mklist 42) ;=> (42)

まとめ

 今回は、onlispを紹介してみました。
On Lispで紹介されているユーティリティは色々なユーティリティライブラリに取り込まれていますが、パッケージとしてまとめて配布しているのは、CLOCCだけのようです。
折角なのでもうちょっと使い易くして欲しいところ。

comments powered by Disqus