実践Common lispを読み始めた-第13章 リスト処理:コンスセルの別用途

Windows Mobileでも

Common Lispが使えないかな。文法が似てるかなとおもってPocketSchemeを入れたら、何か打ち込むたびに怒られる。微妙に文法が違うらしい。EMACS+SLIMEなんて動いてくれるといいのだけれど。

コンスセルを使えばツリーも簡単に作れる。Lispプログラムがまさにツリー構造になっていることから明らか。
とするとLispではツリーis a リストなんだろうな。実際、

CL-USER> (listp '((1 2) (3 4) (5 6)))
T

集合

CL-USER> (defparameter *set* ())
*SET*
CL-USER> *set*
NIL
CL-USER> (adjoin 1 *set*)
(1)
CL-USER> (adjoin 10 *set*)
(10)
CL-USER> (pushnew 10 *set*)
(10)
CL-USER> (pushnew 1 *set*)
(1 10)
CL-USER> (pushnew 100 *set*)
(100 1 10)
CL-USER> 

集合だから、同じ値をpushしても無視されるわけだ。

ルックアップテーブル

昨日の日記で、点対なんて一体何に使うのだろうと疑問に思っていたら、早速応用例の登場。連想リストの実装に使われているのか。確かにこの方法ならスッキリ管理できるな。