Programming/lisp

lisp 연관리스트

구차니 2013. 1. 14. 23:15
associative memory의 줄임말이려나?
아무튼 굳이 NIL로 끝나지 않는 리스트로 하지 않아도 상관은 없지만
(assoc '찾을값 찾을목록)
식으로 사용하면 된다. 하지만 linked list를 이용해서 검색하는 것으로 
성능상의 하락이 있으므로 해싱을 이용하는 등, 다른방법을 강구하는 것이 좋다고 한다.

(setq tt '((bill . double)
            (lisa . coffee)
            (john . latte)))
((BILL . DOUBLE) (LISA . COFFEE) (JOHN . LATTE))
> (assoc 'lisa tt)
(LIST . COFFEE)

(setq ta '((bill double)
            (lisa coffee)
            (john latte)))
((BILL DOUBLE) (LISA COFFEE) (JOHN LATTE))
> (assoc 'lisa ta)
(LIST . COFFEE)