Previous: Cons Cell Type, Up: Cons Cell Type   [Contents][Index]


2.3.6.1 ¥É¥Ã¥ÈÂе­Ë¡

¥É¥Ã¥ÈÂе­Ë¡¡Êdotted pair notation¡Ë¤È¤Ï¡¢ CAR¤ÈCDR¤òÌÀ¼¨¤·¤¿¥³¥ó¥¹¥»¥ë¤òɽ¤¹¤â¤¦1¤Ä¤Î¹½Ê¸¤Ç¤¹¡£ ¤³¤Î¹½Ê¸¤Ç¤Ï¡¢(a . b)¤Ç¡¢ CAR¤¬¥ª¥Ö¥¸¥§¥¯¥Èa¤Ç¤¢¤ê CDR¤¬¥ª¥Ö¥¸¥§¥¯¥Èb¤Ç¤¢¤ë¥³¥ó¥¹¥»¥ë¤òɽ¤·¤Þ¤¹¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢¥É¥Ã¥ÈÂе­Ë¡¤Ï¡¢¥ê¥¹¥È¤Î¹½Ê¸¤è¤ê¤µ¤é¤ËÈÆÍÑÀ­¤¬¤¢¤ê¤Þ¤¹¡£ ¥É¥Ã¥ÈÂе­Ë¡¤Ç¤Ï¡¢¥ê¥¹¥È‘(1 2 3)’¤Ï¡¢ ‘(1 . (2 . (3 . nil)))’¤È½ñ¤±¤Þ¤¹¡£ nil¤Ç½ª¤ë¥ê¥¹¥È¤Ê¤é¤Ð¡¢¤É¤Á¤é¤Îµ­Ë¡¤Ç¤â½ñ¤­É½¤»¤Þ¤¹¤¬¡¢ ¥ê¥¹¥Èµ­Ë¡¤Î¤Û¤¦¤¬¤ï¤«¤ê¤ä¤¹¤¯¤ÆÊØÍø¤Ç¤¹¡£ ¥ê¥¹¥È¤òɽ¼¨¤¹¤ë¤È¤­¤Ë¤Ï¡¢¥³¥ó¥¹¥»¥ë¤ÎCDR¤¬¥ê¥¹¥È°Ê³°¤Î¾ì¹ç¤Ë¸Â¤Ã¤Æ ¥É¥Ã¥ÈÂе­Ë¡¤ò»È¤¤¤Þ¤¹¡£

¥É¥Ã¥ÈÂе­Ë¡¤òÈ¢¤Çɽ¸½¤·¤Æ¤ß¤Þ¤¹¡£ ¤Ä¤®¤ÎÎã¤Ï(rose . violet)¤òɽ¤·¤¿¤â¤Î¤Ç¤¹¡£

    --- ---
   |   |   |--> violet
    --- ---
     |
     |
      --> rose

ºÇ¸å¤ÎCDR¤¬nil°Ê³°¤Ç¤¢¤ë¤è¤¦¤Ê¥³¥ó¥¹¥»¥ë¤ÎÏ¢º¿¤òɽ¸½¤¹¤ë¤¿¤á¤Ë¡¢ ¥ê¥¹¥Èµ­Ë¡¤Ë¥É¥Ã¥ÈÂе­Ë¡¤òÁȤ߹ç¤ï¤»¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¥ê¥¹¥È¤ÎºÇ¸å¤ÎÍ×ÁǤΤ¢¤È¤Ë¥É¥Ã¥È¤ò½ñ¤­¡¢ ³¤±¤Æ¡¢ºÇ¸å¤Î¥³¥ó¥¹¥»¥ë¤ÎCDR¤ò½ñ¤­¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢(rose violet . buttercup)¤Ï¡¢ (rose . (violet . buttercup))¤ËÅù²Á¤Ç¤¹¡£ ¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤Ä¤®¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

    --- ---      --- ---
   |   |   |--> |   |   |--> buttercup
    --- ---      --- ---
     |            |
     |            |
      --> rose     --> violet

(rose . violet . buttercup)¤È¤¤¤¦¹½Ê¸¤ÏÉÔÀµ¤Ç¤¹¡£ ¤³¤ì¤¬°ÕÌ£¤¹¤ë¤³¤È¤Ï¤Ê¤Ë¤â¤¢¤ê¤Þ¤»¤ó¡£ ¤¿¤È¤¨¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢CDR¤òvioletÍѤˤ¹¤Ç¤Ë»È¤Ã¤Æ¤¤¤ë¥³¥ó¥¹¥»¥ë¤Î CDR¤Ëbuttercup¤òÃÖ¤±¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

¥ê¥¹¥È(rose violet)¤Ï¡¢(rose . (violet))¤ËÅù²Á¤Ç¤¢¤ê¡¢ ¤Ä¤®¤Î¤è¤¦¤Ë¿Þ¼¨¤Ç¤­¤Þ¤¹¡£

    --- ---      --- ---
   |   |   |--> |   |   |--> nil
    --- ---      --- ---
     |            |
     |            |
      --> rose     --> violet

ƱÍͤˡ¢3Í×ÁǤΥꥹ¥È(rose violet buttercup)¤Ï¡¢ (rose . (violet . (buttercup)))¤ËÅù²Á¤Ç¤¹¡£