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 |

2009-12-28

KMRCLを眺める (51) GET-ALIST

| 00:11 | KMRCLを眺める (51) GET-ALIST - わだばLisperになる を含むブックマーク はてなブックマーク - KMRCLを眺める (51) GET-ALIST - わだばLisperになる

今回は、KMRCLのlists.lisp中からGET-ALISTです。

定義は、

(defun get-alist (key alist &key (test #'eql))
  (cdr (assoc key alist :test test)))

となっていますが、gethashのalist版といったところですね。

(DEFPARAMETER *ALIST* (LIST (CONS :A :B) (CONS :C :D) (CONS :E :F)))
(DEFPARAMETER *ALIST-EMPTY* () )

*ALIST*
;⇒ ((:A . :B) (:C . :D) (:E . :F))

(GET-ALIST :A *ALIST*)
;⇒ :B

(GET-ALIST :A *ALIST-EMPTY*)
;⇒ NIL

GETHASHのように成功/失敗も含めて多値で返してくれると便利ですが…

(GET-ALIST :A '((A . NIL)))
;⇒ NIL
(GET-ALIST :A '((B . T)))
;⇒ NIL

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20091228