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
¤òÁý¤ä¤·¤Þ¤¹¡£