Next: Modifying Lists, Previous: List Elements, Up: Lists [Contents][Index]
¥ê¥¹¥È¤ÏLisp¤ÎÃæ³Ë¤Ê¤Î¤Ç¡¢Â¿¤¯¤Î´Ø¿ô¤Ï¥ê¥¹¥È¤ò¹½ÃÛ¤·¤Þ¤¹¡£
cons
¤Ï´ðËÜŪ¤Ê¥ê¥¹¥È¹½ÃÛ´Ø¿ô¤Ç¤¹¡£
¤·¤«¤·¡¢Emacs¤Î¥½¡¼¥¹¥³¡¼¥É¤Ç¤Ï¡¢cons
¤è¤êlist
¤ò
¿ÍѤ·¤Æ¤¤¤ë¤³¤È¤Ï¶½Ì£¿¼¤¤¤³¤È¤Ç¤¹¡£
¤³¤Î´Ø¿ô¤Ï¡¢¿·¤¿¤Ê¥ê¥¹¥È¹½Â¤¤ò¹½ÃÛ¤¹¤ë¤¿¤á¤Ë»È¤¦´ðËÜ´Ø¿ô¡£ object1¤òCAR¡¢object2¤òCDR¤È¤¹¤ë ¿·¤¿¤Ê¥³¥ó¥¹¥»¥ë¤òºîÀ®¤·¡¢¤³¤Î¥³¥ó¥¹¥»¥ë¤òÊÖ¤¹¡£ °ú¿ôobject1¤Èobject2¤Ï¤É¤ó¤ÊLisp¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤â¤è¤¤¤¬¡¢ ¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢object2¤Ï¥ê¥¹¥È¤Ç¤¢¤ë¡£
(cons 1 '(2)) ⇒ (1 2)
(cons 1 '()) ⇒ (1)
(cons 1 2) ⇒ (1 . 2)
cons
¤Ï¡¢¥ê¥¹¥È¤ÎÀèÆ¬¤ËÍ×ÁǤò1¤ÄÄɲ乤뤿¤á¤Ë
¤·¤Ð¤·¤Ð»È¤ï¤ì¤ë¡£
¤³¤ì¤òÍ×ÁǤò¥ê¥¹¥È¤Ë¥³¥ó¥¹¤¹¤ë¤È¤¤¤¦¡£
¤¿¤È¤¨¤Ð¡¢¤Ä¤®¤Î¤È¤ª¤ê¡£
(setq list (cons newelt list))
¤³¤ÎÎã¤Ë¤ª¤±¤ëlist
¤È¤¤¤¦Ì¾Á°¤ÎÊÑ¿ô¤È
°Ê²¼¤Ë½Ò¤Ù¤ëlist
¤È¤¤¤¦Ì¾Á°¤Î´Ø¿ô¤È¤Ï¾×ÆÍ¤·¤Ê¤¤¡£
Ǥ°Õ¤Î¥·¥ó¥Ü¥ë¤Ï¤É¤Á¤é¤ÎÌÜŪ¤Ë¤â»È¤¨¤ë¡£
¤³¤Î´Ø¿ô¤Ï¡¢objects¤òÍ×ÁǤȤ¹¤ë¥ê¥¹¥È¤òºîÀ®¤¹¤ë¡£
·ë²Ì¤Î¥ê¥¹¥È¤Ï¤Ä¤Í¤Ënil
½ªÃ¼¤Ë¤Ê¤ë¡£
objects¤ò»ØÄꤷ¤Ê¤¤¤È¶õ¥ê¥¹¥È¤òÊÖ¤¹¡£
(list 1 2 3 4 5) ⇒ (1 2 3 4 5)
(list 1 2 '(3 4 5) 'foo) ⇒ (1 2 (3 4 5) foo)
(list) ⇒ nil
¤³¤Î´Ø¿ô¤Ï¡¢¤¹¤Ù¤Æ¤ÎÍ×ÁǤ¬Æ±°ì¤ÎÃÍobject¤Ç¤¢¤ê
Ťµ¤¬length¤Î¥ê¥¹¥È¤òºîÀ®¤¹¤ë¡£
make-string
¤ÈÈæ³Ó¤·¤Æ¤Û¤·¤¤¡Êsee Creating Strings¡Ë¡£
(make-list 3 'pigs) ⇒ (pigs pigs pigs)
(make-list 0 'pigs) ⇒ nil
¤³¤Î´Ø¿ô¤Ïsequences¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤ«¤éÀ®¤ë¥ê¥¹¥È¤òÊÖ¤¹¡£
sequences¤Ï¡¢¥ê¥¹¥È¡¢¥Ù¥¯¥È¥ë¡¢¥Ö¡¼¥ë¥Ù¥¯¥È¥ë¡¢Ê¸»úÎó¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¤¬¡¢
ÉáÄÌ¡¢ºÇ¸å¤ÎÍ×ÁǤϥꥹ¥È¤Ç¤¢¤ë¡£
ºÇ¸å¤Î°ú¿ô¤ò½ü¤¤¤Æ¤¹¤Ù¤Æ¤Î°ú¿ô¤ò¥³¥Ô¡¼¤¹¤ë¤Î¤Ç¡¢¤É¤Î°ú¿ô¤âÊѹ¹¤·¤Ê¤¤
¡Ê¥³¥Ô¡¼¤»¤º¤Ë¥ê¥¹¥È¤ò·Ò¤°ÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢
Rearrangement¤Înconc
¤ò»²¾È¡£¡Ë
°ìÈ̤ˤϡ¢append
¤ÎºÇ¸å¤Î°ú¿ô¤Ï¤É¤ó¤ÊLisp¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤â¤è¤¤¡£
ºÇ¸å¤Î°ú¿ô¤ò¥³¥Ô¡¼¤·¤¿¤êÊÑ´¹¤·¤¿¤ê¤·¤Ê¤¤¡£
¤½¤ì¤Ï¡¢¿·¤¿¤Ê¥ê¥¹¥È¤ÎºÇ¸å¤Î¥³¥ó¥¹¥»¥ë¤ÎCDR¤Ë¤Ê¤ë¡£
ºÇ¸å¤Î°ú¿ô¤¬¤½¤ì¼«ÂΥꥹ¥È¤Ç¤¢¤ì¤Ð¡¢¤½¤ì¤é¤ÎÍ×ÁǤϡ¢¼Â¼ÁŪ¤Ë¤Ï¡¢
·ë²Ì¤Î¥ê¥¹¥È¤ÎÍ×ÁǤˤʤ롣
ºÇ¸å¤ÎÍ×ÁǤ¬¥ê¥¹¥È¤Ç¤Ê¤±¤ì¤Ð¡¢·ë²Ì¤Ï¡Ø¥É¥Ã¥ÈÂС٤ˤʤ롣
¤Ê¤¼¤Ê¤é¡¢·ë²Ì¤ÎºÇ¸å¤ÎCDR¤Ï¡¢
¿¿¤Î¥ê¥¹¥È¤ËɬÍפȤµ¤ì¤ënil
¤Ç¤Ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
´Ø¿ôappend
¤Ï¡¢°ú¿ô¤È¤·¤ÆÀ°¿ô¤â¼õ¤±ÉÕ¤±¤ë¡£
À°¿ô¤ò10¿Ê¤Îɽ¼¨É½¸½¤Îʸ»úÎó¤ËÊÑ´¹¤·¤Æ¤«¤é¡¢
¤½¤Îʸ»úÎó¤òÀ°¿ô¤Î¤«¤ï¤ê¤Ë»È¤¦¡£
¤³¤Îµ¡Ç½¤ò»È¤ï¤Ê¤¤¤Ç¤Û¤·¤¤¡£
ºï½ü¤¹¤ëͽÄê¤Ç¤¢¤ë¡£
ÆÉ¼Ô¤¬¤³¤Îµ¡Ç½¤ò»È¤Ã¤Æ¤¤¤¿¤é¡¢º£¤¹¤°¥×¥í¥°¥é¥à¤òľ¤¹¤³¤È¡ª
À°¿ô¤ò¤³¤Î¤è¤¦¤Ê10¿Ê¿ô¤ËÊÑ´¹¤¹¤ëÀµ¤·¤¤ÊýË¡¤Ï¡¢
format
¡Êsee Formatting Strings¡Ë¤ä
number-to-string
¡Êsee String Conversion¡Ë¤ò»È¤¦¤³¤È¤Ç¤¢¤ë¡£
append
¤Î»ÈÍÑÎã¤ò¤Ä¤®¤Ë¼¨¤·¤Þ¤¹¡£
(setq trees '(pine oak)) ⇒ (pine oak) (setq more-trees (append '(maple birch) trees)) ⇒ (maple birch pine oak)
trees ⇒ (pine oak) more-trees ⇒ (maple birch pine oak)
(eq trees (cdr (cdr more-trees))) ⇒ t
Ȣɽ¼¨¤ò¸«¤ì¤Ðappend
¤Îưºî¤òÍý²ò¤Ç¤¤ë¤Ç¤·¤ç¤¦¡£
ÊÑ¿ôtrees
¤Ë¥ê¥¹¥È(pine oak)
¤òÀßÄꤷ¡¢¤Ä¤¤¤Ç¡¢
ÊÑ¿ômore-trees
¤Ë¤Ï¥ê¥¹¥È(maple birch pine oak)
¤òÀßÄꤷ¤Þ¤¹¡£
¤·¤«¤·¡¢ÊÑ¿ôtrees
¤Ï¤â¤È¤Î¥ê¥¹¥È¤ò»Ø¤·Â³¤±¤Þ¤¹¡£
more-trees trees | | | --- --- --- --- -> --- --- --- --- --> | | |--> | | |--> | | |--> | | |--> nil --- --- --- --- --- --- --- --- | | | | | | | | --> maple -->birch --> pine --> oak
¶õ¥·¡¼¥±¥ó¥¹¤Ïappend
¤¬ÊÖ¤¹ÃͤˤϤޤ俤¯´óÍ¿¤·¤Þ¤»¤ó¡£
¤³¤Î·ë²Ì¡¢ºÇ¸å¤Înil
°ú¿ô¤ÏľÁ°¤Î°ú¿ô¤ò¥³¥Ô¡¼¤¹¤ë¤è¤¦¤Ë¶¯À©¤·¤Þ¤¹¡£
trees ⇒ (pine oak)
(setq wood (append trees nil)) ⇒ (pine oak)
wood ⇒ (pine oak)
(eq wood trees) ⇒ nil
¤³¤ÎÊýË¡¤Ï¡¢´Ø¿ôcopy-sequence
¤òƳÆþ¤¹¤ë¤Þ¤Ç¤Ï¡¢
¥ê¥¹¥È¤ò¥³¥Ô¡¼¤¹¤ëÉáÄ̤ÎÊýË¡¤Ç¤·¤¿¡£
See Sequences Arrays Vectors¡£
append
¤Î°ú¿ô¤Ë¥Ù¥¯¥È¥ë¤Èʸ»úÎó¤ò»È¤Ã¤¿Îã¤ò¤Ä¤®¤Ë¼¨¤·¤Þ¤¹¡£
(append [a b] "cd" nil) ⇒ (a b 99 100)
apply
¡Êsee Calling Functions¡Ë¤Î½õ¤±¤ò¼Ú¤ê¤ì¤Ð¡¢
¥ê¥¹¥È¤Î¥ê¥¹¥È¤ÎÃæ¤Ë¤¢¤ë¤¹¤Ù¤Æ¤Î¥ê¥¹¥È¤òÏ¢·ë¤Ç¤¤Þ¤¹¡£
(apply 'append '((a b c) nil (x y z) nil)) ⇒ (a b c x y z)
sequences¤ò¤Þ¤Ã¤¿¤¯»ØÄꤷ¤Ê¤¤¤Ènil
¤òÊÖ¤·¤Þ¤¹¡£
(append) ⇒ nil
ºÇ¸å¤Î°ú¿ô¤¬¥ê¥¹¥È¤Ç¤Ï¤Ê¤¤Îã¤ò¤¤¤¯¤Ä¤«¼¨¤·¤Þ¤¹¡£
(append '(x y) 'z) ⇒ (x y . z) (append '(x y) [z]) ⇒ (x y . [z])
ºÇ¸å¤Î°ú¿ô¤¬¥ê¥¹¥È¤Ç¤Ï¤Ê¤¯¥·¡¼¥±¥ó¥¹¤Ç¤¢¤ë2ÈÖÌܤÎÎã¤Ï¡¢ ¥·¡¼¥±¥ó¥¹¤ÎÍ×ÁǤ¬·ë²Ì¤Î¥ê¥¹¥È¤ÎÍ×ÁǤˤϤʤé¤Ê¤¤¤³¤È¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£ ¤½¤Î¤«¤ï¤ê¤Ë¡¢ºÇ¸å¤Î°ú¿ô¤¬¥ê¥¹¥È¤Ç¤Ê¤¤¾ì¹ç¤ÈƱÍͤˡ¢ ¥·¡¼¥±¥ó¥¹¤¬ºÇ¸å¤ÎCDR¤Ë¤Ê¤ê¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ï¡¢list¤ÎÍ×ÁǤòµÕ½ç¤Ë¤·¤¿¿·¤¿¤Ê¥ê¥¹¥È¤òºîÀ®¤¹¤ë¡£ ¤â¤È¤Î°ú¿ôlist¤ÏÊѹ¹¤·¤Ê¤¤¡£
(setq x '(1 2 3 4)) ⇒ (1 2 3 4)
(reverse x) ⇒ (4 3 2 1) x ⇒ (1 2 3 4)
Next: Modifying Lists, Previous: List Elements, Up: Lists [Contents][Index]