Next: , Previous: Preactivation, Up: Advising Functions   [Contents][Index]


16.8 ¥¢¥É¥Ð¥¤¥¹¤«¤é¤Î°ú¿ô¤Î»²¾È

¥¢¥É¥Ð¥¤¥¹ÃÇÊÒ¤ÎËÜÂΤ«¤é¥¢¥É¥Ð¥¤¥¹¤¹¤ë´Ø¿ô¤Î°ú¿ô¤ò»²¾È¤¹¤ë ¤â¤Ã¤È¤â´Êñ¤ÊÊýË¡¤Ï¡¢´Ø¿ôÄêµÁ¤ÇÍѤ¤¤Æ¤¤¤ë¤â¤Î¤ÈƱ¤¸Ì¾Á°¤ò»È¤¦¤³¤È¤Ç¤¹¡£ ¤³¤ì¤Ë¤Ï¡¢¸µ´Ø¿ô¤Î°ú¿ô¤ÎÊÑ¿ô̾¤òÃΤëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

¿¤¯¤Î¾ì¹ç¡¢¤³¤Îñ½ã¤ÊÊýË¡¤Ç½½Ê¬¤Ç¤¹¤¬¡¢·çÅÀ¤â¤¢¤ê¤Þ¤¹¡£ ¥¢¥É¥Ð¥¤¥¹Æâ¤Ë°ú¿ô̾¤òľÀܽñ¤­¹þ¤à¤¿¤á¤Ë¡¢·øÏ´¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ´Ø¿ô¤Î¸µÄêµÁ¤¬Êѹ¹¤µ¤ì¤ë¤È¡¢¥¢¥É¥Ð¥¤¥¹¤Ïưºî¤·¤Þ¤»¤ó¡£

¾¤ÎÊýË¡¤Ï¡¢¥¢¥É¥Ð¥¤¥¹¤½¤Î¤â¤Î¤Ë°ú¿ô¥ê¥¹¥È¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤¹¡£ ¤³¤ì¤Ï´Ø¿ô¤Î¸µÄêµÁ¤Î°ú¿ô̾¤òÃΤëɬÍפϤ¢¤ê¤Þ¤»¤ó¤¬¡¢À©Ìó¤â¤¢¤ê¤Þ¤¹¡£ ´Ø¿ô¤ËÂФ¹¤ë¤¹¤Ù¤Æ¤Î¥¢¥É¥Ð¥¤¥¹¤ÇƱ°ì¤Î°ú¿ô¥ê¥¹¥È¤ò»È¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ ¤Ê¤¼¤Ê¤é¡¢¤¹¤Ù¤Æ¤Î¥¢¥É¥Ð¥¤¥¹¤Ë¼ÂºÝ¤Ë»È¤ï¤ì¤ë°ú¿ô¥ê¥¹¥È¤Ï¡¢ Åö³º´Ø¿ô¤Î¥¢¥É¥Ð¥¤¥¹ÃÇÊҤκǽé¤Î¤â¤Î¤À¤«¤é¤Ç¤¹¡£

¤è¤ê·øÏ´¤ÊÊýË¡¤Ï¡¢³èÀ­¤Ë¤¹¤ë¤È¤­¤Ë¡¢ ¤Ä¤Þ¤ê¡¢¥¢¥É¥Ð¥¤¥¹¤ò·ë¹ç¤·¤¿ÄêµÁ¤òºîÀ®¤¹¤ë¤È¤­¤Ë ŬÀڤʥե©¡¼¥à¤ËŸ³«¤µ¤ì¤ë¥Þ¥¯¥í¤ò»È¤¦¤³¤È¤Ç¤¹¡£ »²¾ÈÍÑ¥Þ¥¯¥í¤Ï¡¢´Ø¿ô¤Î°ú¿ôÊÑ¿ô¤Ø¤Î¼Â°ú¿ô¤ÎʬÇÛÊýË¡¤Ë°Í¸¤·¤Ê¤¤ ¼Â°ú¿ô¤Î°ÌÃ֤ǻ²¾È¤·¤Þ¤¹¡£ Emacs Lisp¤Ë¤ª¤¤¤Æ¤Ï¡¢°ú¿ô¤Î°ÕÌ£¤Ï°ú¿ô¥ê¥¹¥ÈÆâ¤Ç¤Î°ÌÃ֤Ƿè¤Þ¤ë¤¿¤á¡¢ ¤³¤ì¤Ï·øÏ´¤Ç¤¹¡£

Macro: ad-get-arg position

°ÌÃÖposition¤Ë¤¢¤ë¼Â°ú¿ô¤òÊÖ¤¹¡£

Macro: ad-get-args position

°ÌÃÖposition¤«¤é»Ï¤Þ¤ë¼Â°ú¿ô¤Î¥ê¥¹¥È¤òÊÖ¤¹¡£

Macro: ad-set-arg position value

°ÌÃÖposition¤Ë¤¢¤ë¼Â°ú¿ô¤ÎÃͤòÀßÄꤹ¤ë¡£

Macro: ad-set-args position value-list

°ÌÃÖposition¤«¤é»Ï¤Þ¤ë¼Â°ú¿ô¤Î¥ê¥¹¥È¤Ëvalue-list¤òÀßÄꤹ¤ë¡£

Îã¤ò¼¨¤·¤Þ¤¹¡£ ´Ø¿ôfoo¤ÎÄêµÁ¤Ï¤Ä¤®¤Î¤È¤ª¤ê¤Ç¤¢¤ê¡¢

(defun foo (x y &optional z &rest r) ...)

¤Ä¤®¤Î¤è¤¦¤Ë¸Æ¤Ð¤ì¤ë¤È¤·¤Þ¤¹¡£

(foo 0 1 2 3 4 5 6)

¤½¤¦¤¹¤ë¤È¡¢foo¤ÎËÜÂΤǤϡ¢ x¤Ï0¡¢y¤Ï1¡¢z¤Ï2¡¢r¤Ï(3 4 5 6)¤Ç¤¹¡£ ¤³¤Î¤È¤­¡¢ad-get-arg¤äad-get-args¤Ï¡¢¤Ä¤®¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£

(ad-get-arg 0) ⇒ 0
(ad-get-arg 1) ⇒ 1
(ad-get-arg 2) ⇒ 2
(ad-get-arg 3) ⇒ 3
(ad-get-args 2) ⇒ (2 3 4 5 6)
(ad-get-args 4) ⇒ (4 5 6)

¤³¤ÎÎã¤Ç¤Ï¡¢°ú¿ô¤ËÃͤòÀßÄê¤Ç¤­¤Þ¤¹¡£

(ad-set-arg 5 "five")

¤Î¸ú²Ì¤Ï¡¢6ÈÖÌܤΰú¿ô¤ò"five"¤ËÊѹ¹¤·¤Þ¤¹¡£ foo¤ÎËÜÂΤò¼Â¹Ô¤¹¤ë¤Þ¤¨¤Ë¤³¤Î¥¢¥É¥Ð¥¤¥¹¤¬¼Â¹Ô¤µ¤ì¤ë¤È¡¢ ËÜÂÎÆâ¤Ç¤Ïr¤Ï(3 4 "five" 6)¤Ë¤Ê¤ê¤Þ¤¹¡£

¤Ä¤®¤Ï°ú¿ô¥ê¥¹¥È¤òÊѹ¹¤¹¤ëÎã¤Ç¤¹¡£

(ad-set-args 0 '(5 4 3 2 1 0))

foo¤ÎËÜÂΤò¼Â¹Ô¤¹¤ë¤Þ¤¨¤Ë¤³¤Î¥¢¥É¥Ð¥¤¥¹¤¬¼Â¹Ô¤µ¤ì¤ë¤È¡¢ foo¤ÎËÜÂÎÆâ¤Ç¤Ï¡¢ x¤Ï5¡¢y¤Ï4¡¢z¤Ï3¡¢r¤Ï(2 1 0)¤Ë¤Ê¤ê¤Þ¤¹¡£

¤³¤ì¤é¤Î°ú¿ô»²¾È¤Ï¡¢¼ÂºÝ¤Ë¤ÏLisp¥Þ¥¯¥í¤È¤·¤Æ¤Î¼ÂÁõ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¥¢¥É¥Ð¥¤¥¹µ¡¹½¤ÇÆÃÊ̤˼ÂÁõ¤·¤Æ¤¢¤ê¤Þ¤¹¡£