Next: , Previous: Compiling Macros, Up: Macros   [Contents][Index]


12.4 ¥Þ¥¯¥íÄêµÁ

Lisp¤Î¥Þ¥¯¥í¤Ï¡¢¤½¤ÎCAR¤¬macro¤Ç¤¢¤ë¥ê¥¹¥È¤Ç¤¹¡£ ¤½¤ÎCDR¤Ï´Ø¿ô¤Ç¤¢¤ë¤Ù¤­¤Ç¤¹¡£ ¥Þ¥¯¥í¤ÎŸ³«¤Ï¡¢¥Þ¥¯¥í¸Æ¤Ó½Ð¤·¤Î̤ɾ²Á¤Î°ú¿ô¼°¤Ë ¡Êapply¤Ç¡Ë´Ø¿ô¤òŬÍѤ·¤ÆÆ°ºî¤·¤Þ¤¹¡£

̵̾´Ø¿ô¤Î¤è¤¦¤Ë̵̾Lisp¥Þ¥¯¥í¤ò»È¤¦¤³¤È¤â²Äǽ¤Ç¤¹¤¬¡¢ ¤±¤Ã¤·¤Æ¤·¤Ê¤¤¤Ç¤·¤ç¤¦¡£ mapcar¤Î¤è¤¦¤Ê¥Õ¥¡¥ó¥¯¥·¥ç¥Ê¥ë¤Ë̵̾¥Þ¥¯¥í¤òÅϤ¹°ÕÌ£¤¬¤Ê¤¤¤«¤é¤Ç¤¹¡£ ¼ÂÍѾå¤Ï¡¢¤¹¤Ù¤Æ¤ÎLisp¥Þ¥¯¥í¤Ë¤Ï̾Á°¤¬¤¢¤ê¡¢ ÉáÄÌ¡¢¥¹¥Ú¥·¥ã¥ë¥Õ¥©¡¼¥àdefmacro¤ÇÄêµÁ¤·¤Þ¤¹¡£

Special Form: defmacro name argument-list body-forms…

defmacro¤Ï¡¢¥·¥ó¥Ü¥ëname¤ò¤Ä¤®¤Î¤è¤¦¤Ê¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤¹¤ë¡£

(macro lambda argument-list . body-forms)

¡Ê¤³¤Î¥ê¥¹¥È¤ÎCDR¤Ï´Ø¿ô¡¢¤Ä¤Þ¤ê¡¢¥é¥à¥À¼°¤Ç¤¢¤ë¤³¤È¤ËÃí°Õ¡£¡Ë ¤³¤Î¥Þ¥¯¥í¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢name¤Î´Ø¿ô¥»¥ë¤Ë³ÊǼ¤µ¤ì¤ë¡£ ¥Õ¥©¡¼¥àdefmacro¤òɾ²Á¤·¤¿·ë²Ì¡¢ÊÖ¤µ¤ì¤ëÃͤÏname¤Ç¤¢¤ë¤¬¡¢ Ä̾盧¤ÎÃͤÏ̵»ë¤¹¤ë¡£

argument-list¤Î·Á¼°¤È°ÕÌ£¤Ï¡¢´Ø¿ô¤Î¤½¤ì¤ÈƱ¤¸¤Ç¤¢¤ê¡¢ ¥­¡¼¥ï¡¼¥É&rest¤ä&optional¤ò»È¤Ã¤Æ¤â¤è¤¤ ¡Êsee Argument List¡Ë¡£ ¥Þ¥¯¥í¤Ë¤âÀâÌÀʸ»úÎó¤ò»ØÄê¤Ç¤­¤ë¤¬¡¢ ¥Þ¥¯¥í¤òÂÐÏÃŪ¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢ interactiveÀë¸À¤Ï̵»ë¤¹¤ë¡£