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


12.1 ¥Þ¥¯¥í¤Î´Êñ¤ÊÎã

C¸À¸ì¤Î±é»»»Ò++¤Î¤è¤¦¤Ë¡¢ ÊÑ¿ô¤ÎÃͤòÁý²Ã¤µ¤»¤ëLisp¤Î¹½Ê¸¤òÄêµÁ¤·¤¿¤¤¤È¤·¤Þ¤·¤ç¤¦¡£ (inc x)¤Î¤è¤¦¤Ë½ñ¤¤¤Æ¡¢ (setq x (1+ x))¤Î¤è¤¦¤Ê¸ú²Ì¤òÆÀ¤¿¤¤¤Î¤Ç¤¹¡£ ¤³¤ì¤ò¹Ô¤¦¥Þ¥¯¥íÄêµÁ¤Ï¤Ä¤®¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

(defmacro inc (var)
   (list 'setq var (list '1+ var)))

¤³¤ì¤ò(inc x)¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤¹¤È¡¢ °ú¿ôvar¤Ï¥·¥ó¥Ü¥ëx¤Ë¤Ê¤ê¤Þ¤¹¡£ ´Ø¿ô¤Î¤è¤¦¤Ëx¤ÎÃͤǤϤ¢¤ê¤Þ¤»¤ó¡£ ¥Þ¥¯¥í¤ÎËÜÂΤǤϡ¢¤³¤ì¤ò»È¤Ã¤ÆÅ¸³«·Á(setq x (1+ x))¤ò¹½ÃÛ¤·¤Þ¤¹¡£ ¥Þ¥¯¥íÄêµÁ¤¬¤³¤ÎŸ³«·Á¤òÊÖ¤¹¤È¡¢ Lisp¤Ï¤½¤ì¤òɾ²Á¤¹¤ë¤³¤È¤Ë¿Ê¤ß¡¢x¤òÁý¤ä¤·¤Þ¤¹¡£