Next: , Previous: Setcar, Up: Modifying Lists   [Contents][Index]


5.6.2 ¥ê¥¹¥È¤ÎCDR¤ÎÊѹ¹

CDR¤ò½¤Àµ¤¹¤ë¤â¤Ã¤È¤âÄã¥ì¥Ù¥ë¤Î´ðËÜ´Ø¿ô¤Ïsetcdr¤Ç¤¹¡£

Function: setcdr cons object

¤³¤Î´Ø¿ô¤Ï¡¢cons¤Î¿·¤¿¤ÊCDR¤È¤·¤Æobject¤ò³ÊǼ¤·¡¢ °ÊÁ°¤ÎCDR¤òÃÖ¤­´¹¤¨¤ë¡£ ¤¤¤¤¤«¤¨¤ì¤Ð¡¢cons¤ÎCDR¥¹¥í¥Ã¥È¤¬object¤ò»Ø¤¹¤è¤¦¤ËÊѹ¹¤¹¤ë¡£ ¤³¤Î´Ø¿ô¤ÏÃÍobject¤òÊÖ¤¹¡£

¥ê¥¹¥È¤ÎCDR¤òÊ̤Υꥹ¥È¤ÇÃÖ¤­´¹¤¨¤ëÎã¤ò¼¨¤·¤Þ¤¹¡£ ¥ê¥¹¥È¤ÎºÇ½é¤ÎÍ×Áǰʳ°¤Ï¼è¤ê½ü¤«¤ì¡¢ Í×ÁǤÎÊ̤Υ·¡¼¥±¥ó¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£ ºÇ½é¤ÎÍ×ÁǤÏÊѹ¹¤µ¤ì¤Þ¤»¤ó¡£ ¤È¤¤¤¦¤Î¤Ï¡¢¤½¤ì¤Ï¥ê¥¹¥È¤ÎCAR¤ÎÃæ¤Ë¤¢¤ê¡¢ CDR¤«¤é¤Ïé¤ì¤Ê¤¤¤«¤é¤Ç¤¹¡£

(setq x '(1 2 3))
     ⇒ (1 2 3)
(setcdr x '(4))
     ⇒ (4)
x
     ⇒ (1 4)

¥ê¥¹¥ÈÆâ¤Î¥³¥ó¥¹¥»¥ë·²¤ÎCDR¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢ ¥ê¥¹¥È¤ÎÃæ¤Û¤É¤ÎÍ×ÁǤòºï½ü¤Ç¤­¤Þ¤¹¡£ ¤Ä¤®¤ÎÎã¤Ï¡¢¥ê¥¹¥È(a b c)¤ÎºÇ½é¤Î¥³¥ó¥¹¥»¥ë¤ÎCDR¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢ ¤³¤Î¥ê¥¹¥È¤ÎÂè2Í×ÁÇb¤òºï½ü¤·¤Þ¤¹¡£

(setq x1 '(a b c))
     ⇒ (a b c)
(setcdr x1 (cdr (cdr x1)))
     ⇒ (c)
x1
     ⇒ (a c)

Ȣɽµ­¤Ç¤Ï¡¢¤³¤Î·ë²Ì¤Ï¤Ä¤®¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

                   --------------------
                  |                    |
 --------------   |   --------------   |    --------------
| car   | cdr  |  |  | car   | cdr  |   -->| car   | cdr  |
|   a   |   o-----   |   b   |   o-------->|   c   |  nil |
|       |      |     |       |      |      |       |      |
 --------------       --------------        --------------

°ÊÁ°¤ËÍ×ÁÇb¤òÊÝ»ý¤·¤Æ¤¤¤¿2ÈÖÌܤΥ³¥ó¥¹¥»¥ë¤Ï¤Þ¤À¸ºß¤·¤Æ¤¤¤Æ¡¢ ¤½¤ÎCAR¤â¤Þ¤Àb¤Ç¤¹¤¬¡¢¤³¤Î¥ê¥¹¥È¤Î°ìÉô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

CDR¤òÊѹ¹¤·¤Æ¿·¤¿¤ÊÍ×ÁǤòÁÞÆþ¤¹¤ë¤Î¤âƱÍͤ˴Êñ¤Ç¤¹¡£

(setq x1 '(a b c))
     ⇒ (a b c)
(setcdr x1 (cons 'd (cdr x1)))
     ⇒ (d b c)
x1
     ⇒ (a d b c)

Ȣɽµ­¤Ç¤Ï¡¢¤³¤Î·ë²Ì¤Ï¤Ä¤®¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

 --------------        -------------       -------------
| car  | cdr   |      | car  | cdr  |     | car  | cdr  |
|   a  |   o   |   -->|   b  |   o------->|   c  |  nil |
|      |   |   |  |   |      |      |     |      |      |
 --------- | --   |    -------------       -------------
           |      |
     -----         --------
    |                      |
    |    ---------------   |
    |   | car   | cdr   |  |
     -->|   d   |   o------
        |       |       |
         ---------------