Previous: Sets And Lists, Up: Lists [Contents][Index]
Ï¢Áۥꥹ¥È¡Êassociation list¡Ë¡¢Î¬¤·¤Æalist¤Ï¡¢ ¥¡¼¤«¤éÃͤؤÎÂбþÉÕ¤±¤òµÏ¿¤·¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤ÏÏ¢ÁÛ¡Êassociations¡Ë¤È¸Æ¤Ð¤ì¤ë¥³¥ó¥¹¥»¥ë¤Î¥ê¥¹¥È¤Ç¤¹¡£ ³Æ¥³¥ó¥¹¥»¥ë¤ÎCAR¤Ïkey¤Ç¤¢¤ê¡¢ CDR¤ÏÏ¢ÁÛÃÍ¡Êassociated value¡Ë¤Ç¤¹¡£ 6
Ï¢Áۥꥹ¥È¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£
¥¡¼pine
¤òÃÍcones
¤Ë¡¢¥¡¼oak
¤òÃÍacorns
¤Ë¡¢
¥¡¼maple
¤òÃÍseeds
¤ËÂбþÉÕ¤±¤Æ¤¤¤Þ¤¹¡£
'((pine . cones) (oak . acorns) (maple . seeds))
Ï¢Áۥꥹ¥ÈÆâ¤ÎÏ¢ÁÛÃͤÏǤ°Õ¤ÎLisp¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤è¤¯¡¢¥¡¼¤â¤½¤¦¤Ç¤¹¡£
¤¿¤È¤¨¤Ð¡¢¤Ä¤®¤ÎÏ¢Áۥꥹ¥È¤Ç¤Ï¡¢¥·¥ó¥Ü¥ëa
¤Ë¿ô1
¤ò¡¢
ʸ»úÎó"b"
¤Ë¥ê¥¹¥È(2 3)
¤òÂбþÉÕ¤±¤Æ¤¤¤Þ¤¹¡£
¥ê¥¹¥È(2 3)
¤ÏÏ¢Áۥꥹ¥È¤ÎÍ×ÁǤÎCDR¤Ç¤¹¡£
((a . 1) ("b" 2 3))
Í×ÁǤÎCDR¤ÎCAR¤ËÏ¢ÁÛÃͤò³ÊǼ¤¹¤ë¤è¤¦¤Ë Ï¢Áۥꥹ¥È¤òÀ߷פ·¤¿¤Û¤¦¤¬¤è¤¤¾ì¹ç¤â¤¢¤ê¤Þ¤¹¡£ ¤Ä¤®¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£
'((rose red) (lily white) (buttercup yellow))
¤³¤³¤Ç¡¢red
¤Ïrose
¤ËÂбþÉÕ¤±¤¿Ãͤȹͤ¨¤Þ¤¹¡£
¤³¤Î¼ï¤ÎÏ¢Áۥꥹ¥È¤ÎÍøÅÀ¤Î1¤Ä¤Ï¡¢´ØÏ¢¤¹¤ëÊ̤ξðÊó¤ò¡¢
¾¤Î¹àÌܤ«¤éÀ®¤ë¥ê¥¹¥È¤Ç¤µ¤¨¤â¡¢CDR¤ÎCDR¤Ë³ÊǼ¤Ç¤¤ë¤³¤È¤Ç¤¹¡£
1¤Ä¤Î·çÅÀ¤Ï¡¢rassq
¡Ê²¼µ»²¾È¡Ë¤ò»È¤Ã¤Æ
»ØÄꤷ¤¿Ãͤò´Þ¤àÍ×ÁǤòõ¤»¤Ê¤¤¤³¤È¤Ç¤¹¡£
¤³¤ì¤é¤Î¾ò·ï¤¬½ÅÍפǤʤ¤¾ì¹ç¤Ë¤Ï¡¢1¤Ä¤ÎÏ¢Áۥꥹ¥È¤Ë´Ø¤¹¤ë¸Â¤ê¡¢
°ì´ÓÀ¤¬¤¢¤ì¤Ð¤É¤Á¤é¤òÁª¤Ö¤«¤Ï¹¥¤ß¤ÎÌäÂê¤Ç¤¹¡£
¾å¤Ë¼¨¤·¤¿Ï¢Áۥꥹ¥È¤Ï¡¢Í×ÁǤÎCDR¤ËÏ¢ÁÛÃͤ¬¼ý¤á¤Æ¤¢¤ë¤È
¹Í¤¨¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
rose
¤ÎÏ¢ÁÛÃͤϥꥹ¥È(red)
¤Ë¤Ê¤ê¤Þ¤¹¡£
Ï¢Áۥꥹ¥È¤Ï¥¹¥¿¥Ã¥¯¤Ê¤É¤ËÃÖ¤¯¤è¤¦¤Ê¾ðÊó¤ÎµÏ¿¤Ë»È¤¤¤Þ¤¹¡£ ¤È¤¤¤¦¤Ë¤Ï¡¢¥ê¥¹¥È¤ÎÀèÆ¬¤Ë¿·¤¿¤ÊÏ¢ÁÛ¤òÄɲ乤ë¤Î¤¬´Êñ¤À¤«¤é¤Ç¤¹¡£ »ØÄꤷ¤¿¥¡¼¤ËÂФ¹¤ëÏ¢ÁÛ¤òÏ¢Áۥꥹ¥È¤«¤éõ¤¹¤È¤¡¢ ¤½¤ì¤é¤¬Ê£¿ô¸Ä¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ºÇ½é¤Ë¤ß¤Ä¤«¤Ã¤¿¤â¤Î¤òÊÖ¤·¤Þ¤¹¡£
Emacs List¤Ç¤Ï¡¢Ï¢Áۥꥹ¥È¤ÎÍ×ÁǤ¬¥³¥ó¥¹¥»¥ë¤Ç¤Ê¤¯¤Æ¤â ¥¨¥é¡¼¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ Ï¢Áۥꥹ¥Èõº÷´Ø¿ô¤Ï¤½¤Î¤è¤¦¤ÊÍ×ÁǤòñ¤Ë̵»ë¤·¤Þ¤¹¡£ ¾¤Î¿¤¯¤ÎLisp¤Ç¤Ï¡¢¤½¤Î¤è¤¦¤Ê¾ìÌ̤Ǥϥ¨¥é¡¼¤òÄÌÃΤ·¤Þ¤¹¡£
°À¥ê¥¹¥È¤â¤¤¤í¤¤¤í¤Ê°ÕÌ£¤ÇÏ¢Áۥꥹ¥È¤ËÎà»÷¤·¤Æ¤¤¤Þ¤¹¡£ °À¥ê¥¹¥È¤Ï¡¢¥¡¼¤¬°ìÅÙ¤·¤«¸½¤ì¤Ê¤¤Ï¢Áۥꥹ¥È¤Î¤è¤¦¤Ë¤Õ¤ë¤Þ¤¤¤Þ¤¹¡£ °À¥ê¥¹¥È¤ÈÏ¢Áۥꥹ¥È¤ÎÈæ³Ó¤Ë¤Ä¤¤¤Æ¤Ï¡¢See Property Lists¡£
¤³¤Î´Ø¿ô¤Ï¡¢alistÆâ¤Îkey¤ËÂФ¹¤ëºÇ½é¤ÎÏ¢ÁÛ¤òÊÖ¤¹¡£
key¤ÈÏ¢Áۥꥹ¥È¤Î³ÆÍ×ÁǤȤÎÈæ³Ó¤Ë¤Ï¡¢
equal
¡Êsee Equality Predicates¡Ë¤òÍѤ¤¤ë¡£
alist¤ÎÃæ¤ËCAR¤¬key¤Ëequal
¤Ç¤¢¤ëÏ¢ÁÛ¤¬
¸ºß¤·¤Ê¤±¤ì¤Ð¡¢nil
¤òÊÖ¤¹¡£
¤¿¤È¤¨¤Ð¡¢¤Ä¤®¤Î¤È¤ª¤ê¡£
(setq trees '((pine . cones) (oak . acorns) (maple . seeds))) ⇒ ((pine . cones) (oak . acorns) (maple . seeds)) (assoc 'oak trees) ⇒ (oak . acorns) (cdr (assoc 'oak trees)) ⇒ acorns (assoc 'birch trees) ⇒ nil
¤Ä¤®¤Ï¡¢¥¡¼¤ÈÃͤ¬¥·¥ó¥Ü¥ë¤Ç¤Ï¤Ê¤¤Îã¡£
(setq needles-per-cluster '((2 "Austrian Pine" "Red Pine") (3 "Pitch Pine") (5 "White Pine"))) (cdr (assoc 3 needles-per-cluster)) ⇒ ("Pitch Pine") (cdr (assoc 2 needles-per-cluster)) ⇒ ("Austrian Pine" "Red Pine")
´Ø¿ôassoc-ignore-representation
¤Èassoc-ignore-case
¤Ï
assoc
¤Ë»÷¤Æ¤¤¤Þ¤¹¤¬¡¢
¤½¤ì¤é¤ÏÈæ³Ó¤Ëcompare-strings
¤ò»È¤¦ÅÀ¤¬°Û¤Ê¤ê¤Þ¤¹¡£
See Text Comparison¡£
¤³¤Î´Ø¿ô¤Ï¡¢alist¤ÎÃæ¤Çvalue¤òÃͤȤ¹¤ëºÇ½é¤ÎÏ¢ÁÛ¤òÊÖ¤¹¡£
alist¤ÎÃæ¤ËCDR¤¬value¤Ëequal
¤Ç¤¢¤ëÏ¢ÁÛ¤¬
¸ºß¤·¤Ê¤±¤ì¤Ð¡¢nil
¤òÊÖ¤¹¡£
rassoc
¤Ïassoc
¤Ë»÷¤Æ¤¤¤ë¤¬¡¢
alist¤Î³ÆÏ¢ÁÛ¤ÎCAR¤Î¤«¤ï¤ê¤ËCDR¤òÈæ³Ó¤¹¤ëÅÀ¤¬°Û¤Ê¤ë¡£
»ØÄꤷ¤¿ÃͤËÂФ¹¤ë¥¡¼¤òõ¤¹¡Øassoc
¤ÎµÕ±é»»¡Ù¤È¹Í¤¨¤ë¤³¤È¤¬¤Ç¤¤ë¡£
¤³¤Î´Ø¿ô¤Ï¡¢alistÆâ¤Îkey¤ËÂФ¹¤ëºÇ½é¤ÎÏ¢ÁÛ¤òÊÖ¤¹¤È¤¤¤¦°ÕÌ£¤Ç
assoc
¤Ë»÷¤Æ¤¤¤ë¤¬¡¢equal
¤Î¤«¤ï¤ê¤Ëeq
¤ÇÈæ³Ó¤¹¤ë¡£
alistÆâ¤ÎÏ¢ÁÛ¤ÎCAR¤¬key¤Ëeq
¤Ç¤¢¤ë¤â¤Î¤¬Â¸ºß¤·¤Ê¤¤¤È¡¢
assq
¤Ïnil
¤òÊÖ¤¹¡£
¤³¤Î´Ø¿ô¤Ïassoc
¤è¤ê¿ÍѤµ¤ì¤ë¡£
¤È¤¤¤¦¤Î¤Ï¡¢eq
¤Ïequal
¤è¤ê¹â®¤Ç¤¢¤ê¡¢
¤Û¤È¤ó¤É¤ÎÏ¢Áۥꥹ¥È¤Ç¤Ï¥¡¼¤È¤·¤Æ¥·¥ó¥Ü¥ë¤ò»È¤¦¤«¤é¤Ç¤¢¤ë¡£
(setq trees '((pine . cones) (oak . acorns) (maple . seeds))) ⇒ ((pine . cones) (oak . acorns) (maple . seeds)) (assq 'pine trees) ⇒ (pine . cones)
°ìÊý¤Ç¡¢¥¡¼¤¬¥·¥ó¥Ü¥ë¤Ç¤Ï¤Ê¤¤Ï¢Áۥꥹ¥È¤Ç¤Ï¡¢
assq
¤Ï¡¢Ä̾ÍÍѤǤϤʤ¤¡£
(setq leaves '(("simple leaves" . oak) ("compound leaves" . horsechestnut))) (assq "simple leaves" leaves) ⇒ nil (assoc "simple leaves" leaves) ⇒ ("simple leaves" . oak)
¤³¤Î´Ø¿ô¤Ï¡¢alist¤ÎÃæ¤Çvalue¤òÃͤȤ¹¤ëºÇ½é¤ÎÏ¢ÁÛ¤òÊÖ¤¹¡£
alist¤ÎÃæ¤ËCDR¤¬value¤Ëeq
¤Ç¤¢¤ëÏ¢ÁÛ¤¬
¸ºß¤·¤Ê¤±¤ì¤Ð¡¢nil
¤òÊÖ¤¹¡£
rassq
¤Ïassq
¤Ë»÷¤Æ¤¤¤ë¤¬¡¢
alist¤Î³ÆÏ¢ÁÛ¤ÎCAR¤Î¤«¤ï¤ê¤ËCDR¤òÈæ³Ó¤¹¤ëÅÀ¤¬°Û¤Ê¤ë¡£
»ØÄꤷ¤¿ÃͤËÂФ¹¤ë¥¡¼¤òõ¤¹¡Øassq
¤ÎµÕ±é»»¡Ù¤È¹Í¤¨¤ë¤³¤È¤¬¤Ç¤¤ë¡£
¤¿¤È¤¨¤Ð¤Ä¤®¤Î¤È¤ª¤ê¡£
(setq trees '((pine . cones) (oak . acorns) (maple . seeds))) (rassq 'acorns trees) ⇒ (oak . acorns) (rassq 'spores trees) ⇒ nil
rassq
¤Ç¤Ï¡¢
Í×ÁǤÎCDR¤ÎCAR¤Ë³ÊǼ¤µ¤ì¤¿Ãͤòõ¤»¤Ê¤¤¤³¤È¤ËÃí°Õ¡£
(setq colors '((rose red) (lily white) (buttercup yellow))) (rassq 'white colors) ⇒ nil
¤³¤Î¾ì¹ç¡¢Ï¢ÁÛ(lily white)
¤ÎCDR¤Ï¡¢
¥·¥ó¥Ü¥ëwhite
¤Ç¤Ï¤Ê¤¯¥ê¥¹¥È(white)
¤Ç¤¢¤ë¡£
Ï¢ÁÛ¤ò¥É¥Ã¥ÈÂеˡ¤Ç½ñ¤¯¤È¤³¤ì¤¬ÌÀ³Î¤Ë¤Ê¤ë¡£
(lily white) ≡ (lily . (white))
¤³¤Î´Ø¿ô¤Ï¡¢key¤Ë°ìÃפ¹¤ë¤â¤Î¤òalist¤«¤éõ¤¹¡£
alist¤Î³ÆÍ×ÁǤˤĤ¤¤Æ¡¢¡Ê¥¢¥È¥à¤Ê¤é¤Ð¡ËÍ×ÁǤÈkey¤ò¡¢
¤¢¤ë¤¤¤Ï¡¢¡Ê¥³¥ó¥¹¤Ê¤é¤Ð¡ËÍ×ÁǤÎCAR¤Èkey¤òÈæ³Ó¤¹¤ë¡£
Èæ³Ó¤Ë¤Ï¤³¤ì¤é¤ò2¤Ä¤Î°ú¿ô¤È¤·¤Ætest¤ò¸Æ¤Ó½Ð¤¹¡£
°ú¿ô¤òÅϤ¹½ç½ø¤Ï¤³¤Î½ç¤Ê¤Î¤Ç¡¢
Àµµ¬É½¸½¡Êsee Regexp Search¡Ë¤ò¼ý¤á¤¿Ï¢Áۥꥹ¥È¤ËÂФ·¤Æ
string-match
¤ò»È¤¦¤Èͱפʷë²Ì¤òÆÀ¤é¤ì¤ë¡£
test¤ò¾Êά¤·¤¿¤ênil
¤Ç¤¢¤ë¤È¡¢Èæ³Ó¤Ë¤Ïequal
¤òÍѤ¤¤ë¡£
¾å¤Î¾ò·ï¤ÇÏ¢Áۥꥹ¥È¤ÎÍ×ÁǤ¬key¤Ë°ìÃפ¹¤ë¤Ê¤é¤Ð¡¢
assoc-default
¤Ï¤½¤ÎÍ×ÁǤ˴ð¤Å¤¯ÃͤòÊÖ¤¹¡£
Í×ÁǤ¬¥³¥ó¥¹¤Ê¤é¤ÐÃͤÏÍ×ÁǤÎCDR¡£
¤µ¤â¤Ê¤±¤ì¤Ð¡¢Ìá¤êÃͤÏdefault¡£
key¤Ë°ìÃפ¹¤ëÏ¢Áۥꥹ¥È¤ÎÍ×ÁǤ¬Â¸ºß¤·¤Ê¤±¤ì¤Ð¡¢
assoc-default
¤Ïnil
¤òÊÖ¤¹¡£
¤³¤Î´Ø¿ô¤Ï¡¢alist¤ò2¥ì¥Ù¥ë¤Î¿¼¤µ¤Þ¤Ç¥³¥Ô¡¼¤·¤¿¤â¤Î¤òÊÖ¤¹¡£ ³ÆÏ¢ÁÛ¤´¤È¤Ë¿·¤¿¤Ê¥³¥Ô¡¼¤òºî¤ë¤Î¤Ç¡¢ ¿·¤¿¤ÊÏ¢Áۥꥹ¥È¤ÎÏ¢ÁÛ¤òÊѹ¹¤·¤Æ¤â¡¢¤â¤È¤ÎÏ¢Áۥꥹ¥È¤ÏÊѹ¹¤·¤Ê¤¤¡£
(setq needles-per-cluster '((2 . ("Austrian Pine" "Red Pine")) (3 . ("Pitch Pine"))
(5 . ("White Pine")))) ⇒ ((2 "Austrian Pine" "Red Pine") (3 "Pitch Pine") (5 "White Pine")) (setq copy (copy-alist needles-per-cluster)) ⇒ ((2 "Austrian Pine" "Red Pine") (3 "Pitch Pine") (5 "White Pine")) (eq needles-per-cluster copy) ⇒ nil (equal needles-per-cluster copy) ⇒ t (eq (car needles-per-cluster) (car copy)) ⇒ nil (cdr (car (cdr needles-per-cluster))) ⇒ ("Pitch Pine")
(eq (cdr (car (cdr needles-per-cluster))) (cdr (car (cdr copy)))) ⇒ t
¤³¤ÎÎã¤Ï¡¢copy-alist
¤Ë¤è¤ê¡¢
¥³¥Ô¡¼¤ÎÏ¢ÁÛ¤òÊѹ¹¤·¤ÆÂ¾¤Î¤â¤Î¤Ë¤Ê¤¼±Æ¶Á¤·¤Ê¤¤¤«¤ò¼¨¤¹¡£
(setcdr (assq 3 copy) '("Martian Vacuum Pine")) (cdr (assq 3 needles-per-cluster)) ⇒ ("Pitch Pine")
¤³¤Î¡Ø¥¡¼¡Ù¤Î»È¤¤Êý¤Ï¡¢¡Ø¥¡¼Îó¡Ù¤È¤Ï̵´Ø·¸¡£ ¥¡¼¤È¤Ï¡¢É½¤Î¹àÌܤòõ¤¹¤¿¤á¤Ë»È¤¦Ãͤò°ÕÌ£¤¹¤ë¡£ ¤³¤³¤Ç¤Ï¡¢É½¤ÏÏ¢Áۥꥹ¥È¤Ç¤¢¤ê¡¢¹àÌܤÏÏ¢Áۥꥹ¥È¤ÎÏ¢ÁÛÃͤǤ¢¤ë¡£
Previous: Sets And Lists, Up: Lists [Contents][Index]