Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2008-07-29

CLで学ぶ「プログラミングGauche」 (9.2)

| 08:05 | CLで学ぶ「プログラミングGauche」 (9.2) - わだばLisperになる を含むブックマーク はてなブックマーク - CLで学ぶ「プログラミングGauche」 (9.2) - わだばLisperになる

また間が開いてしまいました。今回は、9.2です。

9.2 連想リスト

連想リストは古いLISPからの伝統ということでCLもSchemeも共通といったところでしょう。

Schemeでは、SRFIの拡張で、assocが比較のための述語をオプションで取れるとのこと。

MacLISP等の時代は、比較述語によってバリエーションが作られるということが行なわれていたようで、equalで比較するassoc、eqで比較するassqがあったりしました。この辺の伝統は、一部のSRFIや、elispに残っているようですが、CLは、デフォルトの述語をeqlにして他は:testキーワードで述語を指定するという風に統一されたので派生の専用関数を作るということはあまり行なわれなくなりました。

(assoc 'foo '((bar . 3) (foo . 2) (baz . 1)) :test #'eq)

ということで、本の内容とは全く関係のないことを延々と書いてしまいました…。

次回は9.3から再開したいと思います。