Next: Subr Arguments, Previous: Preactivation, Up: Advising Functions [Contents][Index]
¥¢¥É¥Ð¥¤¥¹ÃÇÊÒ¤ÎËÜÂΤ«¤é¥¢¥É¥Ð¥¤¥¹¤¹¤ë´Ø¿ô¤Î°ú¿ô¤ò»²¾È¤¹¤ë ¤â¤Ã¤È¤â´Êñ¤ÊÊýË¡¤Ï¡¢´Ø¿ôÄêµÁ¤ÇÍѤ¤¤Æ¤¤¤ë¤â¤Î¤ÈƱ¤¸Ì¾Á°¤ò»È¤¦¤³¤È¤Ç¤¹¡£ ¤³¤ì¤Ë¤Ï¡¢¸µ´Ø¿ô¤Î°ú¿ô¤ÎÊÑ¿ô̾¤òÃΤëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¿¤¯¤Î¾ì¹ç¡¢¤³¤Îñ½ã¤ÊÊýË¡¤Ç½½Ê¬¤Ç¤¹¤¬¡¢·çÅÀ¤â¤¢¤ê¤Þ¤¹¡£ ¥¢¥É¥Ð¥¤¥¹Æâ¤Ë°ú¿ô̾¤òľÀܽñ¤¹þ¤à¤¿¤á¤Ë¡¢·øÏ´¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ´Ø¿ô¤Î¸µÄêµÁ¤¬Êѹ¹¤µ¤ì¤ë¤È¡¢¥¢¥É¥Ð¥¤¥¹¤Ïưºî¤·¤Þ¤»¤ó¡£
¾¤ÎÊýË¡¤Ï¡¢¥¢¥É¥Ð¥¤¥¹¤½¤Î¤â¤Î¤Ë°ú¿ô¥ê¥¹¥È¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤¹¡£ ¤³¤ì¤Ï´Ø¿ô¤Î¸µÄêµÁ¤Î°ú¿ô̾¤òÃΤëɬÍפϤ¢¤ê¤Þ¤»¤ó¤¬¡¢À©Ìó¤â¤¢¤ê¤Þ¤¹¡£ ´Ø¿ô¤ËÂФ¹¤ë¤¹¤Ù¤Æ¤Î¥¢¥É¥Ð¥¤¥¹¤ÇƱ°ì¤Î°ú¿ô¥ê¥¹¥È¤ò»È¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ ¤Ê¤¼¤Ê¤é¡¢¤¹¤Ù¤Æ¤Î¥¢¥É¥Ð¥¤¥¹¤Ë¼ÂºÝ¤Ë»È¤ï¤ì¤ë°ú¿ô¥ê¥¹¥È¤Ï¡¢ Åö³º´Ø¿ô¤Î¥¢¥É¥Ð¥¤¥¹ÃÇÊҤκǽé¤Î¤â¤Î¤À¤«¤é¤Ç¤¹¡£
¤è¤ê·øÏ´¤ÊÊýË¡¤Ï¡¢³èÀ¤Ë¤¹¤ë¤È¤¤Ë¡¢ ¤Ä¤Þ¤ê¡¢¥¢¥É¥Ð¥¤¥¹¤ò·ë¹ç¤·¤¿ÄêµÁ¤òºîÀ®¤¹¤ë¤È¤¤Ë ŬÀڤʥե©¡¼¥à¤ËŸ³«¤µ¤ì¤ë¥Þ¥¯¥í¤ò»È¤¦¤³¤È¤Ç¤¹¡£ »²¾ÈÍÑ¥Þ¥¯¥í¤Ï¡¢´Ø¿ô¤Î°ú¿ôÊÑ¿ô¤Ø¤Î¼Â°ú¿ô¤ÎʬÇÛÊýË¡¤Ë°Í¸¤·¤Ê¤¤ ¼Â°ú¿ô¤Î°ÌÃ֤ǻ²¾È¤·¤Þ¤¹¡£ Emacs Lisp¤Ë¤ª¤¤¤Æ¤Ï¡¢°ú¿ô¤Î°ÕÌ£¤Ï°ú¿ô¥ê¥¹¥ÈÆâ¤Ç¤Î°ÌÃ֤Ƿè¤Þ¤ë¤¿¤á¡¢ ¤³¤ì¤Ï·øÏ´¤Ç¤¹¡£
°ÌÃÖposition¤Ë¤¢¤ë¼Â°ú¿ô¤òÊÖ¤¹¡£
°ÌÃÖposition¤«¤é»Ï¤Þ¤ë¼Â°ú¿ô¤Î¥ê¥¹¥È¤òÊÖ¤¹¡£
°ÌÃÖposition¤Ë¤¢¤ë¼Â°ú¿ô¤ÎÃͤòÀßÄꤹ¤ë¡£
°ÌÃÖ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¥Þ¥¯¥í¤È¤·¤Æ¤Î¼ÂÁõ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¥¢¥É¥Ð¥¤¥¹µ¡¹½¤ÇÆÃÊ̤˼ÂÁõ¤·¤Æ¤¢¤ê¤Þ¤¹¡£