Next: , Previous: Completion, Up: Completion   [Contents][Index]


19.5.1 ´ðËÜÊä´°´Ø¿ô

2¤Ä¤Î´Ø¿ôtry-completion¤Èall-completions¤Ï¡¢ ¤½¤ì¼«¿È¤Ç¤Ï¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤ò»È¤¤¤Þ¤»¤ó¡£ ¤³¤ì¤é¤Ë¤Ä¤¤¤ÆËܾϤǽҤ٤ë¤Î¤Ï¡¢ ¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤ò»È¤¦¾å°Ì¥ì¥Ù¥ë¤ÎÊä´°µ¡Ç½¤ÈƱÎó¤Ë¤·¤Æ¤ª¤¯¤¿¤á¤Ç¤¹¡£

Function: try-completion string collection &optional predicate

¤³¤Î´Ø¿ô¤Ï¡¢collection¤Ë¤¢¤ëstring¤òÊä´°¤¹¤ë ¶¦Ä̤κÇŤÊÉôʬʸ»úÎó¤òÊÖ¤¹¡£ collection¤ÎÃͤϡ¢Ï¢Áۥꥹ¥È¡¢¥ª¥Ö¥¸¥§¥¯¥ÈÇÛÎ󡢤¢¤ë¤¤¤Ï¡¢ ¼Â¼ÁŪ¤Êʸ»úÎó¤Î½¸¤Þ¤ê¤òÊÖ¤¹´Ø¿ô¡Ê²¼µ­»²¾È¡Ë¤Ç¤¢¤ë¤³¤È¡£

Êä´°¤Ç¤Ï¡¢collection¤Ç»ØÄꤷ¤¿³ÆÊä´°¸õÊä¤È string¤òÈæ³Ó¤¹¤ë¡£ Êä´°¸õÊä¤ÎÀèÆ¬Éôʬ¤¬string¤ËÅù¤·¤±¤ì¤Ð¡¢ ¤½¤ÎÊä´°¸õÊä¤Ï°ìÃפ¹¤ë¤È¤¤¤¦¡£ °ìÃפ¹¤ëÊä´°¸õÊ䤬¤Ê¤±¤ì¤Ð¡¢try-completion¤Ïnil¤òÊÖ¤¹¡£ ¤¿¤Ã¤¿1¤Ä¤ÎÊä´°¸õÊä¤Ë°ìÃפ·¡¢¤«¤Ä¡¢´°Á´¤Ë°ìÃפ¹¤ì¤Ð¡¢ try-completion¤Ït¤òÊÖ¤¹¡£ ¤µ¤â¤Ê¤±¤ì¤Ð¡¢°ìÃפ¹¤ëÊä´°¸õÊ䤹¤Ù¤Æ¤Ë¶¦Ä̤¹¤ëºÇŤÎʸ»úÎó¤òÃͤȤ¹¤ë¡£

collection¤¬Ï¢Áۥꥹ¥È¡Êsee Association Lists¡Ë¤Ç¤¢¤ë¤È¡¢ Ï¢Áۥꥹ¥È¤ÎÍ×ÁǤÎCAR·²¤¬Êä´°¸õÊä¤Î½¸¤Þ¤ê¤Ë¤Ê¤ë¡£

collection¤¬¥ª¥Ö¥¸¥§¥¯¥ÈÇÛÎó¡Êsee Creating Symbols¡Ë¤Ç¤¢¤ë¤È¡¢ ¥ª¥Ö¥¸¥§¥¯¥ÈÇÛÎóÆâ¤Î¤¹¤Ù¤Æ¤Î¥·¥ó¥Ü¥ë¤Î̾Á°¤¬Êä´°¸õÊä¤Î½¸¤Þ¤ê¤Ë¤Ê¤ë¡£ ¥°¥í¡¼¥Ð¥ëÊÑ¿ôobarray¤Ï¡¢¥¤¥ó¥¿¡¼¥ó¤·¤¿¤¹¤Ù¤Æ¤ÎLisp¥·¥ó¥Ü¥ë¤Î ̾Á°¤ò¼ý¤á¤¿¥ª¥Ö¥¸¥§¥¯¥ÈÇÛÎó¤òÊÝ»ý¤¹¤ë¡£

¿·¤¿¤Ê¥ª¥Ö¥¸¥§¥¯¥ÈÇÛÎó¤òºîÀ®¤¹¤ëÍ£°ì¤ÎÀµ¤·¤¤ÊýË¡¤Ï¡¢ ¤Þ¤º¶õ¤ÇºîÀ®¤·¤Æ¤«¤éintern¤Ç1¤Ä1¤Ä¥·¥ó¥Ü¥ë¤òÄɲ乤뤳¤È¤Ç¤¢¤ë ¤³¤È¤ËÃí°Õ¡£ ¤Ê¤ª¡¢1¤Ä¤Î¥·¥ó¥Ü¥ë¤òÊ£¿ô¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÇÛÎó¤Ë¤Ï¥¤¥ó¥¿¡¼¥ó¤Ç¤­¤Ê¤¤¡£

°ú¿ôpredicate¤¬nil°Ê³°¤Ç¤¢¤ë¾ì¹ç¡¢ ¤½¤ì¤Ï1°ú¿ô¤Î´Ø¿ô¤Ç¤¢¤ë¤³¤È¡£ ¤½¤Î´Ø¿ô¤Ï°ìÃפ¹¤ëÊä´°¸õÊä¤Î¸¡ºº¤Ë»È¤ï¤ì¡¢ predicate¤¬nil°Ê³°¤òÊÖ¤¹¾ì¹ç¤Ë¤Î¤ß°ìÃפ·¤¿¸õÊä¤È¤ß¤Ê¤¹¡£ predicate¤ËÅϤ¹°ú¿ô¤Ï¡¢ ¡ÊCAR¤¬Ê¸»úÎó¤Ç¤¢¤ë¡ËÏ¢Áۥꥹ¥È¤Î¥³¥ó¥¹¥»¥ë¤Ç¤¢¤ë¤«¡¢ ¥ª¥Ö¥¸¥§¥¯¥ÈÇÛÎ󤫤é¤Î¡Ê¥·¥ó¥Ü¥ë̾¤Ç¤Ï¤Ê¤¤¡Ë¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£

collection¤Ë¤Ï¡¢´Ø¿ô¤Ç¤¢¤ë¥·¥ó¥Ü¥ë¤ò»È¤¦¤³¤È¤â¤Ç¤­¤ë¡£ ¤½¤Î´Ø¿ô¤Ë¤ÏÊä´°½èÍý¤ò´°¿ë¤¹¤ëÀÕǤ¤¬¤¢¤ë¡£ try-completion¤Ï¤½¤Î´Ø¿ô¤¬ÊÖ¤·¤¿¤â¤Î¤òÊÖ¤¹¡£ ¤½¤Î´Ø¿ô¤Ï3°ú¿ô¡¢¤Ä¤Þ¤ê¡¢ string¡¢predicate¡¢nil¤Ç¸Æ¤Ð¤ì¤ë¡£ ¡ÊÂè3°ú¿ô¤¬¤¢¤ëÍýͳ¤Ï¡¢ all-completions¤Ç¤âƱ¤¸´Ø¿ô¤ò»È¤¤¡¢ ¤¤¤º¤ì¤Î¾ì¹ç¤Ë¤âŬÀÚ¤ËÆ°ºî¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¡£¡Ë see Programmed Completion¡£

°Ê²¼¤ÎºÇ½é¤ÎÎã¤Ç¤Ï¡¢ ʸ»úÎó‘foo’¤ÏÏ¢Áۥꥹ¥È¤Î3¤Ä¤ÎCAR¤Ë°ìÃפ¹¤ë¡£ ¤¹¤Ù¤Æ¤Î°ìÃפϑfooba’¤Ç»Ï¤Þ¤ë¤¿¤á¡¢¤³¤ì¤¬·ë²Ì¤Ë¤Ê¤ë¡£ 2ÈÖÌܤÎÎã¤Ç¤Ï¡¢¤¿¤Ã¤¿1¤Ä¤Î°ìÃפ¬¤¢¤ê¡¢¤·¤«¤â¡¢´°Á´¤Ë°ìÃפ¹¤ë¤Î¤Ç¡¢ ÃͤÏt¤Ç¤¢¤ë¡£

(try-completion 
 "foo"
 '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)))
     ⇒ "fooba"
(try-completion "foo" '(("barfoo" 2) ("foo" 3)))
     ⇒ t

¤Ä¤®¤ÎÎã¤Ç¤Ï¡¢‘forw’¤Ç»Ï¤Þ¤ë¥·¥ó¥Ü¥ë¤¬Â¿¿ô¤¢¤ê¡¢ ¤½¤ì¤é¤Ï¤¹¤Ù¤ÆÃ±¸ì‘forward’¤Ç»Ï¤Þ¤ë¡£ ¤Û¤È¤ó¤É¤Î¥·¥ó¥Ü¥ë¤Ç¤Ï¡¢¤³¤ì¤Ë‘-’¤¬Â³¤¯¤¬¡¢ ¤¹¤Ù¤Æ¤¬¤½¤¦¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢‘forward’¤Þ¤Ç¤·¤«Êä´°¤Ç¤­¤Ê¤¤¡£

(try-completion "forw" obarray)
     ⇒ "forward"

ºÇ¸å¤ÎÎã¤Ï¡¢½Ò¸ìtest¤Î¸¡ºº¤ËÄ̤ë¤Î¤Ï3¤Ä¤Î°ìÃפΤ¦¤Á2¤Ä¤À¤±¤Ç¤¢¤ë ¡Êʸ»úÎó‘foobaz’¤Ïû¤¹¤®¤ë¡Ë¡£ ξ¼Ô¤Ïʸ»úÎó‘foobar’¤Ç»Ï¤Þ¤ë¡£

(defun test (s) 
  (> (length (car s)) 6))
     ⇒ test
(try-completion 
 "foo"
 '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)) 
 'test)
     ⇒ "foobar"
Function: all-completions string collection &optional predicate nospace

¤³¤Î´Ø¿ô¤Ïstring¤ÎÊä´°¤¹¤Ù¤Æ¤Î¥ê¥¹¥È¤òÊÖ¤¹¡£ ¤³¤Î´Ø¿ô¤Î°ú¿ô¤Ï¡¢try-completion¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£

collection¤¬´Ø¿ô¤Ç¤¢¤ë¤È¡¢ string¡¢predicate¡¢t¤Î3°ú¿ô¤Ç¸Æ¤Ð¤ì¤ë¡£ all-completions¤Ï¤³¤Î´Ø¿ô¤¬ÊÖ¤¹ÃͤòÊÖ¤¹¡£ see Programmed Completion¡£

nospace¤¬nil°Ê³°¤Ç¤¢¤ë¤È¡¢ string¤¬¶õÇò¤Ç»Ï¤Þ¤é¤Ê¤¤¸Â¤ê¡¢¶õÇò¤Ç»Ï¤Þ¤ëÊä´°¤Ï̵»ë¤¹¤ë¡£

try-completion¤ÎÎã¤Ë¼¨¤·¤¿´Ø¿ôtest¤òÍѤ¤¤¿Îã¤ò¼¨¤¹¡£

(defun test (s) 
  (> (length (car s)) 6))
     ⇒ test
(all-completions  
 "foo"
 '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4))
 'test)
     ⇒ ("foobar1" "foobar2")
Variable: completion-ignore-case

¤³¤ÎÊÑ¿ô¤ÎÃͤ¬nil°Ê³°¤Ç¤¢¤ë¤È¡¢ Emacs¤ÏÊä´°¤Ë¤ª¤¤¤ÆÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¡£