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


12.3 ¥Þ¥¯¥í¤È¥Ð¥¤¥È¥³¥ó¥Ñ¥¤¥ë

¤Ê¤¼¡¢¥Þ¥¯¥í¤ÎŸ³«·Á¤ò¤ï¤¶¤ï¤¶·×»»¤·¤Æ¤«¤éŸ³«·Á¤òɾ²Á¤¹¤ë¤Î¤«¡¢ µ¿Ìä¤Ë»×¤¦¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤Ê¤¼¡¢¥Þ¥¯¥íËÜÂΤÇ˾¤ß¤Î·ë²Ì¤òľÀܽФµ¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¡© ¤½¤ÎÍýͳ¤Ë¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤¬´Ø·¸¤·¤Æ¤¤¤Þ¤¹¡£

¥³¥ó¥Ñ¥¤¥ë¤¹¤ëLisp¥×¥í¥°¥é¥à¤Ë¥Þ¥¯¥í¸Æ¤Ó½Ð¤·¤¬¸½¤ì¤ë¤È¡¢ Lisp¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¥¤¥ó¥¿¡¼¥×¥ê¥¿¤¬¤¹¤ë¤Î¤ÈƱÍͤ˥ޥ¯¥íÄêµÁ¤ò¸Æ¤Ó½Ð¤·¡¢ ¤½¤ÎŸ³«·Á¤ò¼õ¤±¼è¤ê¤Þ¤¹¡£ ¤³¤ÎŸ³«·Á¤òɾ²Á¤¹¤ë¤«¤ï¤ê¤Ë¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¡¢ Ÿ³«·Á¤¬¥×¥í¥°¥é¥à¤ËľÀܸ½¤ì¤¿¤«¤Î¤è¤¦¤Ë¤½¤ì¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹¡£ ¤½¤Î·ë²Ì¡¢¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥³¡¼¥É¤Ï¡¢¥Þ¥¯¥í¤¬°Õ¿Þ¤·¤¿ÃͤÈÉûºîÍѤòÀ¸¤¸¡¢ ¤«¤Ä¡¢¼Â¹Ô®Å٤ϥ³¥ó¥Ñ¥¤¥ë¤·¤¿Â®Å٤ˤʤë¤Î¤Ç¤¹¡£ ¥Þ¥¯¥íËÜÂΤ½¤Î¤â¤Î¤ÇÃͤÈÉûºîÍѤò·×»»¤·¤¿¤Î¤Ç¤Ï¡¢ ¤³¤Î¤è¤¦¤Ëưºî¤·¤Þ¤»¤ó¡£ ¥³¥ó¥Ñ¥¤¥ë»þ¤Ë·×»»¤·¤Æ¤·¤Þ¤¤¡¢¤½¤ì¤Ç¤Ï°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó¡£

¥Þ¥¯¥í¸Æ¤Ó½Ð¤·¤¬Àµ¤·¤¯¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¤¿¤á¤Ë¤Ï¡¢ ¤½¤ì¤é¤Î¸Æ¤Ó½Ð¤·¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë¡¢ LispÆâ¤Ç¥Þ¥¯¥í¤¬ÄêµÁºÑ¤ß¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¥³¥ó¥Ñ¥¤¥é¤Ë¤Ï¡¢ÆÉ¼Ô¤¬¤³¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤òÊ亴¤¹¤ëµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£ ¥³¥ó¥Ñ¥¤¥ëÂоݤΥե¡¥¤¥ë¤Ë¥Õ¥©¡¼¥àdefmacro¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¤Î»Ä¤ê¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¢¤¤¤À¤Ï¡¢ °ì»þŪ¤Ë¥Þ¥¯¥í¤òÄêµÁ¤·¤Þ¤¹¡£ ¤³¤Îµ¡Ç½¤¬Æ°ºî¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ defmacro¤òƱ¤¸¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤ËÍøÍѤ¹¤ë²Õ½ê¤è¤ê¤Þ¤¨¤Ë Æþ¤ì¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

¥Õ¥¡¥¤¥ë¤ò¥Ð¥¤¥È¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥È¥Ã¥×¥ì¥Ù¥ë¤Ë¤¢¤ërequire¤Î¸Æ¤Ó½Ð¤·¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢¥Õ¥¡¥¤¥ë¤òÀµ¤·¤¯¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤ËɬÍפʥѥ屡¼¥¸¤òɽ¤·¤Þ¤¹¡£ ¥³¥ó¥Ñ¥¤¥ëÃæ¤ËɬÍפʥޥ¯¥íÄêµÁ¤¬»È¤¨¤ë¤³¤È¤òÊݾڤ¹¤ë1¤Ä¤ÎÊýË¡¤Ï¡¢ ¤½¤ì¤é¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¥Õ¥¡¥¤¥ë¤ò require¤Ë»ØÄꤷ¤Æ¤ª¤¯¤³¤È¤Ç¤¹¡Êsee Named Features¡Ë¡£ ¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ë¡¢ ¥Þ¥¯¥í¤òÄêµÁ¤·¤¿¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¤Æ¤·¤Þ¤¦¤³¤È¤òÈò¤±¤ë¤Ë¤Ï¡¢ require¤Î¸Æ¤Ó½Ð¤·¤Î¼þ¤ê¤Ëeval-when-compile¤ò½ñ¤¤¤Æ¤ª¤­¤Þ¤¹ ¡Êsee Eval During Compile¡Ë¡£