実践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しても無視されるわけだ。
ルックアップテーブル
昨日の日記で、点対なんて一体何に使うのだろうと疑問に思っていたら、早速応用例の登場。連想リストの実装に使われているのか。確かにこの方法ならスッキリ管理できるな。