Next: , Previous: List-related Predicates, Up: Lists   [Contents][Index]


5.4 ¥ê¥¹¥È¤ÎÍ×ÁǤλ²¾È

Function: car cons-cell

¤³¤Î´Ø¿ô¤Ï¡¢¥³¥ó¥¹¥»¥ëcons-cell¤ÎºÇ½é¤Î¥Ý¥¤¥ó¥¿¤¬»Ø¤¹ÃͤòÊÖ¤¹¡£ Ê̤Τ¤¤¤Êý¤ò¤¹¤ì¤Ð¡¢cons-cell¤ÎCAR¤òÊÖ¤¹¡£

ÆÃÊ̤ʾì¹ç¤È¤·¤Æ¡¢cons-cell¤¬nil¤Î¤È¤­¤Ë¤Ï¡¢ car¤Ïnil¤òÊÖ¤¹¤ÈÄêµÁ¤¹¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢Ç¤°Õ¤Î¥ê¥¹¥È¤Ïcar¤ÎÀµ¤·¤¤°ú¿ô¤Ç¤¢¤ë¡£ °ú¿ô¤¬¥³¥ó¥¹¥»¥ë¤Ç¤ânil¤Ç¤â¤Ê¤±¤ì¤Ð¥¨¥é¡¼¤òÄÌÃΤ¹¤ë¡£

(car '(a b c))
     ⇒ a
(car '())
     ⇒ nil
Function: cdr cons-cell

¤³¤Î´Ø¿ô¤Ï¡¢¥³¥ó¥¹¥»¥ëcons-cell¤Î2ÈÖÌܤΥݥ¤¥ó¥¿¤¬»Ø¤¹ÃͤòÊÖ¤¹¡£ Ê̤Τ¤¤¤Êý¤ò¤¹¤ì¤Ð¡¢cons-cell¤ÎCDR¤òÊÖ¤¹¡£

ÆÃÊ̤ʾì¹ç¤È¤·¤Æ¡¢cons-cell¤¬nil¤Î¤È¤­¤Ë¤Ï¡¢ cdr¤Ïnil¤òÊÖ¤¹¤ÈÄêµÁ¤¹¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢Ç¤°Õ¤Î¥ê¥¹¥È¤Ïcdr¤ÎÀµ¤·¤¤°ú¿ô¤Ç¤¢¤ë¡£ °ú¿ô¤¬¥³¥ó¥¹¥»¥ë¤Ç¤ânil¤Ç¤â¤Ê¤±¤ì¤Ð¥¨¥é¡¼¤òÄÌÃΤ¹¤ë¡£

(cdr '(a b c))
     ⇒ (b c)
(cdr '())
     ⇒ nil
Function: car-safe object

¤³¤Î´Ø¿ô¤Ï¡¢¥³¥ó¥¹¥»¥ë¤ÎCAR¤ò¼è¤ê½Ð¤¹¤¬¡¢ ¾¤Î¥Ç¡¼¥¿·¿¤ËÂФ¹¤ë¥¨¥é¡¼¤ò²óÈò¤¹¤ë¡£ object¤¬¥³¥ó¥¹¥»¥ë¤Ê¤é¤Ðobject¤ÎCAR¤òÊÖ¤¹¤¬¡¢ ¤µ¤â¤Ê¤±¤ì¤Ðnil¤òÊÖ¤¹¡£ ¤³¤ì¤Ïcar¤ÈÂоÈŪ¤Ç¤¢¤ê¡¢ car¤Ïobject¤¬¥ê¥¹¥È¤Ç¤Ê¤¤¤È¥¨¥é¡¼¤òÄÌÃΤ¹¤ë¡£

(car-safe object)
≡
(let ((x object))
  (if (consp x)
      (car x)
    nil))
Function: cdr-safe object

¤³¤Î´Ø¿ô¤Ï¡¢¥³¥ó¥¹¥»¥ë¤ÎCDR¤ò¼è¤ê½Ð¤¹¤¬¡¢ ¾¤Î¥Ç¡¼¥¿·¿¤ËÂФ¹¤ë¥¨¥é¡¼¤ò²óÈò¤¹¤ë¡£ object¤¬¥³¥ó¥¹¥»¥ë¤Ê¤é¤Ðobject¤ÎCDR¤òÊÖ¤¹¤¬¡¢ ¤µ¤â¤Ê¤±¤ì¤Ðnil¤òÊÖ¤¹¡£ ¤³¤ì¤Ïcdr¤ÈÂоÈŪ¤Ç¤¢¤ê¡¢ cdr¤Ïobject¤¬¥ê¥¹¥È¤Ç¤Ê¤¤¤È¥¨¥é¡¼¤òÄÌÃΤ¹¤ë¡£

(cdr-safe object)
≡
(let ((x object))
  (if (consp x)
      (cdr x)
    nil))
Function: nth n list

¤³¤Î´Ø¿ô¤Ï¡¢list¤ÎnÈÖÌܤÎÍ×ÁǤòÊÖ¤¹¡£ Í×ÁǤÏ0¤«¤é¿ô¤¨¤ë¤Î¤Ç¡¢list¤ÎCAR¤ÏÍ×ÁÇÈÖ¹æ0¡£ list¤ÎŤµ¤¬n¤«¤½¤ì̤Ëþ¤Ç¤¢¤ë¤È¡¢ÃͤÏnil¤Ë¤Ê¤ë¡£

n¤¬Éé¤Ç¤¢¤ë¤È¡¢nth¤Ïlist¤ÎºÇ½é¤ÎÍ×ÁǤòÊÖ¤¹¡£

(nth 2 '(1 2 3 4))
     ⇒ 3
(nth 10 '(1 2 3 4))
     ⇒ nil
(nth -3 '(1 2 3 4))
     ⇒ 1

(nth n x) ≡ (car (nthcdr n x))

´Ø¿ôelt¤âƱÍͤǤ¢¤ë¤¬¡¢Ç¤°Õ¤Î¥·¡¼¥±¥ó¥¹¤ËŬÍѤǤ­¤ë¡£ Îò»ËŪ¤ÊÍýͳ¤Ç°ú¿ô¤Î½ç½ø¤ÏµÕ¤Ç¤¢¤ë¡£ see Sequence Functions¡£

Function: nthcdr n list

¤³¤Î´Ø¿ô¤Ï¡¢list¤ÎnÈÖÌܤÎCDR¤òÊÖ¤¹¡£ ¤¤¤¤¤«¤¨¤ì¤Ð¡¢list¤Î»Ï¤á¤În¸Ä¤Î¥ê¥ó¥¯¤òÈô¤Ó±Û¤¨¤Æ¡¢ ¤½¤Î¤¢¤È¤Ë¤¢¤ë¤â¤Î¤òÊÖ¤¹¡£

n¤¬0¤«Éé¤Ç¤¢¤ë¤È¡¢nthcdr¤ÏlistÁ´ÂΤòÊÖ¤¹¡£ list¤ÎŤµ¤¬n¤«¤½¤ì̤Ëþ¤Ç¤¢¤ë¤È¡¢ nthcdr¤Ïnil¤òÊÖ¤¹¡£

(nthcdr 1 '(1 2 3 4))
     ⇒ (2 3 4)
(nthcdr 10 '(1 2 3 4))
     ⇒ nil
(nthcdr -3 '(1 2 3 4))
     ⇒ (1 2 3 4)
Function: safe-length list

¤³¤Î´Ø¿ô¤Ï¡¢¥¨¥é¡¼¤ä̵¸Â¥ë¡¼¥×¤ò²óÈò¤·¤Æ¡¢list¤ÎŤµ¤òÊÖ¤¹¡£

list¤¬¼ÂºÝ¤Ë¤Ï¥ê¥¹¥È¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢safe-length¤Ï0¤òÊÖ¤¹¡£ list¤Ë½Û´Ä¤¬¤¢¤ë¤È¡¢¾¯¤Ê¤¯¤È¤â°Û¤Ê¤ëÍ×ÁǤθĿô¤òɽ¤¹Í­¸ÂÃͤòÊÖ¤¹¡£

½Û´Ä¤Ï¤Ê¤¤¤È»×¤ï¤ì¤ë¥ê¥¹¥È¤ÎŤµ¤ò·×»»¤¹¤ë¤â¤Ã¤È¤â°ìÈÌŪ¤ÊÊýË¡¤Ï¡¢ length¤Ç¤¹¡£ See Sequence Functions¡£

Function: caar cons-cell

¤³¤ì¤Ï(car (car cons-cell))¤ÈƱ¤¸¡£

Function: cadr cons-cell

¤³¤ì¤Ï(car (cdr cons-cell))¤ä (nth 1 cons-cell)¤ÈƱ¤¸¡£

Function: cdar cons-cell

¤³¤ì¤Ï(cdr (car cons-cell))¤ÈƱ¤¸¡£

Function: cddr cons-cell

¤³¤ì¤Ï(cdr (cdr cons-cell))¤ä (nthcdr 2 cons-cell)¤ÈƱ¤¸¡£


Next: , Previous: List-related Predicates, Up: Lists   [Contents][Index]