Next: Using Scoping, Previous: Extent, Up: Variable Scoping [Contents][Index]
¡ÊEmacs Lisp¤Î¼ÂºÝ¤Îưºî¤È¤Ï°Û¤Ê¤ë¤¬¡Ëñ½ã¤Ê¼ÂÁõÎ㤬¡¢ ưŪ«Çû¤òÍý²ò¤¹¤ë½õ¤±¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£ ¤³¤Îµ»Ë¡¤ò¿¼¤¤Â«Çû¡Ê¥Ç¥£¡¼¥×¥Ð¥¤¥ó¥Ç¥£¥ó¥°¡¢deep binding¡Ë¤È¸Æ¤Ó¡¢ ½é´ü¤ÎLisp¥·¥¹¥Æ¥à¤Ç»È¤ï¤ì¤Æ¤¤¤Þ¤·¤¿¡£
ÊÑ¿ô¡¦ÃͤÎÂФǤ¢¤ë«Çû¤Î¥¹¥¿¥Ã¥¯¤¬¤¢¤ë¤È¤·¤Þ¤·¤ç¤¦¡£
´Ø¿ô¤ä¥Õ¥©¡¼¥àlet
¤ËÆþ¤ë¤È¡¢
°ú¿ô¤ä¥í¡¼¥«¥ëÊÑ¿ô¤Î«Çû¤ò¥¹¥¿¥Ã¥¯¤ËÀѤߤޤ¹¡£
«Çû¤òºî¤Ã¤¿¹½Â¤¤«¤éÈ´¤±¤ë¤È¤½¤ì¤é¤Î«Çû¤ò¼è¤ê¤µ¤ê¤Þ¤¹¡£
ÊÑ¿ô¤ÎÃͤϡ¢¥¹¥¿¥Ã¥¯¤ÎÀèÆ¬¤«¤éÄì¤Ø¸þ¤±¤Æ¤½¤ÎÊÑ¿ô¤Î«Çû¤òõº÷¤·¤Þ¤¹¡£ ¤½¤Î«Çû¤«¤éÆÀ¤ëÃͤ¬ÊÑ¿ô¤ÎÃͤˤʤê¤Þ¤¹¡£ ÊÑ¿ô¤ËÀßÄꤹ¤ë¤Ë¤Ï¡¢¸½ºß¤Î«Çû¤òõ¤·¤Æ¡¢¤½¤Î«Çû¤Ë¿·¤¿¤ÊÃͤò³ÊǼ¤·¤Þ¤¹¡£
¤³¤ì¤«¤é¤ï¤«¤ë¤è¤¦¤Ë¡¢´Ø¿ô¤Î«Çû¤Ï¡¢¤½¤Î´Ø¿ô¤Î¼Â¹ÔÃæ¤Ë¤Ï¡¢ ¤¿¤È¤¨Ê̤δؿô¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤Æ¤â¡¢Â¸Â³¤·¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤¬Â«Çû¤Î¸³¤¬Æ°Åª¤Ç¤¢¤ë¤È¤¤¤¦Íýͳ¤Ç¤¹¡£ ¤Þ¤¿¡¢¤½¤Î«Çû¤¬Í¸ú¤Ç¤¢¤ë´ü´ÖÃæ¤Ê¤é¤Ð¡¢Æ±¤¸ÊÑ¿ô¤ò»È¤¨¤Ð¾¤Î´Ø¿ô¤«¤é¤â «Çû¤ò»²¾È¤Ç¤¤ë¤Î¤Ç¤¹¡£ ¤³¤ì¤¬¥¹¥³¡¼¥×¤¬Ìµ¸Â¤Ç¤¢¤ë¤È¤¤¤¦Íýͳ¤Ç¤¹¡£
GNU Emacs Lisp¤Ë¤ª¤¤¤Æ¡¢ÊÑ¿ô¤Î¥¹¥³¡¼¥×¤Î¼ÂºÝ¤Î¼ÂÁõ¤Ë¤Ï¡¢ Àõ¤¤Â«Çû¡Ê¥·¥ã¥í¡¼¥Ð¥¤¥ó¥Ç¥£¥ó¥°¡¢shallow binding¡Ë¤È¸Æ¤Ð¤ì¤ë µ»Ë¡¤òÍѤ¤¤Æ¤¤¤Þ¤¹¡£ ³ÆÊÑ¿ô¤Ë¤Ï¸½ºßÃͤòÊݸ¤·¤Æ¤ª¤¯É¸½à¤Î¾ì½ê¡¢¥·¥ó¥Ü¥ë¤ÎÃÍ¥»¥ë¤¬¤¢¤ê¤Þ¤¹¡£
Àõ¤¤Â«Çû¤Ç¤Ï¡¢ÊÑ¿ô¤ÎÀßÄê¤ÏÃÍ¥»¥ë¤ËÃͤò³ÊǼ¤¹¤ë¤³¤È¤Çưºî¤·¤Þ¤¹¡£ ¿·¤¿¤Ê«Çû¤òºîÀ®¤¹¤ë¤È¡Ê°ÊÁ°¤Î«Çû¤Ë°¤¹¤ë¡Ë¸Å¤¤Ãͤò¥¹¥¿¥Ã¥¯¤ËÀѤߡ¢ ¿·¤¿¤Ê¥í¡¼¥«¥ëÃͤòÃÍ¥»¥ë¤Ë³ÊǼ¤·¤Þ¤¹¡£ «Çû¤ò²ò¤¯¤È¤¤Ë¤Ï¡¢¸Å¤¤Ãͤò¥¹¥¿¥Ã¥¯¤«¤é¼è¤ê½Ð¤·¤ÆÃÍ¥»¥ë¤Ë³ÊǼ¤·¤Þ¤¹¡£
Àõ¤¤Â«Çû¤òÍѤ¤¤ëÍýͳ¤Ï¡¢Â«Çû¤òõº÷¤¹¤ëɬÍפ¬¤Ê¤¤¤¿¤á¡¢ ¿¼¤¤Â«Çû¤ÈƱ¤¸·ë²Ì¤ò»ý¤Á¤Ê¤¬¤é¹â®¤Ëưºî¤¹¤ë¤«¤é¤Ç¤¹¡£