Previous: Subr Arguments, Up: Advising Functions [Contents][Index]
´Ø¿ô¤Ë¤Ï¡¢n¸Ä¤Î»öÁ°¥¢¥É¥Ð¥¤¥¹¡Êbefore-advice¡Ë¡¢ m¸Ä¤ÎÊñ°Ï¥¢¥É¥Ð¥¤¥¹¡Êaround-advice¡Ë¡¢ k¸Ä¤Î»ö¸å¥¢¥É¥Ð¥¤¥¹¡Êafter-advice¡Ë¤¬¤¢¤ë¤È¤·¤Þ¤¹¡£ Êݸ¤¿¥¢¥É¥Ð¥¤¥¹ÃÇÊҤϤʤ¤¤È²¾Äꤹ¤ë¤È¡¢ ´Ø¿ô¤Î¥¢¥É¥Ð¥¤¥¹¤ò¼ÂÁõ¤¹¤ë¤¿¤á¤ËºîÀ®¤µ¤ì¤ë·ë¹çÄêµÁ¤Ï ¤Ä¤®¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
(lambda arglist [ [advised-docstring] [(interactive ...)] ] (let (ad-return-value) before-0-body-form... .... before-n-1-body-form... around-0-body-form... around-1-body-form... .... around-m-1-body-form... (setq ad-return-value apply original definition to arglist) other-around-m-1-body-form... .... other-around-1-body-form... other-around-0-body-form... after-0-body-form... .... after-k-1-body-form... ad-return-value))
¥Þ¥¯¥í¤Ï¥Þ¥¯¥í¤È¤·¤ÆºÆÄêµÁ¤·¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢·ë¹çÄêµÁ¤ÎÀèÆ¬¤Ëmacro
¤òÄɲä·¤Þ¤¹¡£
¸µ´Ø¿ô¤ä¥¢¥É¥Ð¥¤¥¹ÃÇÊҤΤɤ줫¤ËÂÐÏÃÀë¸À¤¬¤¢¤ì¤Ð¡¢
ÂÐÏÃÀë¸À¥Õ¥©¡¼¥à¤¬Æþ¤ê¤Þ¤¹¡£
ÂÐÏÃŪ¤Ê´ðËÜ´Ø¿ô¤ò¥¢¥É¥Ð¥¤¥¹¤·¤¿¾ì¹ç¤Ë¤Ï¡¢
ÆÃÊ̤ÊÊýË¡¤ò»È¤¤¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢´ðËÜ´Ø¿ô¤òcall-interactively
¤Ç¸Æ¤Ó½Ð¤·¤Æ¡¢
´ðËÜ´Ø¿ô¼«¿È¤¬°ú¿ô¤òÆÉ¤ß¼è¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤³¤Î¾ì¹ç¡¢¥¢¥É¥Ð¥¤¥¹¤«¤é¤Ï°ú¿ô¤ò»²¾È¤Ç¤¤Þ¤»¤ó¡£
³Æ¥¯¥é¥¹¤Î¤µ¤Þ¤¶¤Þ¤Ê¥¢¥É¥Ð¥¤¥¹¤ÎËÜÂÎ¥Õ¥©¡¼¥à¤Ï¡¢ ¤½¤ì¤é¤Î»ØÄꤵ¤ì¤¿½ç¤ËÁȤßΩ¤Æ¤é¤ì¤Þ¤¹¡£ Êñ°Ï¥¢¥É¥Ð¥¤¥¹l¡Êaround-advice l¡Ë¤Î¥Õ¥©¡¼¥à·²¤Ï¡¢ Êñ°Ï¥¢¥É¥Ð¥¤¥¹l - 1¡Êaround-advice l - 1¡Ë¤Î ¥Õ¥©¡¼¥à¤Î1¤Ä¤ËÆþ¤ê¤Þ¤¹¡£
Êñ°Ï¥¢¥É¥Ð¥¤¥¹¤Î¤â¤Ã¤È¤âÆâ¦¤Ç¤Ï¡¢
¸µÄêµÁ¤òarglist¤ËŬÍÑ
¤·¤Þ¤¹¤¬¡¢¤½¤Î¥Õ¥©¡¼¥à¤Ï¸µ´Ø¿ô¤Î¼ïÎà¤Ë°Í¸¤·¤Þ¤¹¡£
ÊÑ¿ôad-return-value
¤Ë¤Ï¡¢¤½¤ÎÌá¤êÃͤ¬ÀßÄꤵ¤ì¤Þ¤¹¡£
¤³¤ÎÊÑ¿ô¤Ï¤¹¤Ù¤Æ¤Î¥¢¥É¥Ð¥¤¥¹ÃÇÊÒ¤«¤é¸«¤¨¤ë¤Î¤Ç¡¢
¥¢¥É¥Ð¥¤¥¹¤·¤¿´Ø¿ô¤«¤é¼ÂºÝ¤ËÌá¤ë¤Þ¤¨¤Ë¡¢
¤³¤ì¤ò»²¾È¤·¤¿¤êÊѹ¹¤Ç¤¤Þ¤¹¡£
Êݸ¤¿¥¢¥É¥Ð¥¤¥¹ÃÇÊÒ¤ò´Þ¤à¥¢¥É¥Ð¥¤¥¹¤·¤¿´Ø¿ô¤Î¹½Â¤¤âƱ¤¸¤Ç¤¹¡£
Í£°ì¤Î°ã¤¤¤Ï¡¢¥Õ¥©¡¼¥àunwind-protect
¤Ë¤è¤ê¡¢
¥¢¥É¥Ð¥¤¥¹ÃÇÊҤǥ¨¥é¡¼¤òµ¯¤³¤·¤¿¤êÈó¥í¡¼¥«¥ëæ½Ð¤ò¹Ô¤Ã¤Æ¤â¡¢
Êݸ¤¿¥¢¥É¥Ð¥¤¥¹¤¬¼Â¹Ô¤µ¤ì¤ë¤³¤È¤òÊݾڤ·¤Þ¤¹¡£
Êñ°Ï¥¢¥É¥Ð¥¤¥¹¤ò1¤Ä¤Ç¤âÊݸ¤Æ¤¤¤ë¤È¡¢¤½¤Î·ë²Ì¤È¤·¤Æ¡¢
Êñ°Ï¥¢¥É¥Ð¥¤¥¹Á´ÂΤ¬Êݸ¤ì¤Þ¤¹¡£