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


8.2.1 ¼«¸Êɾ²Á·¿¥Õ¥©¡¼¥à

¼«¸Êɾ²Á·¿¥Õ¥©¡¼¥à¡Êself-evaluating form¡Ë¤È¤Ï¡¢ ¥ê¥¹¥È¤Ç¤â¥·¥ó¥Ü¥ë¤Ç¤â¤Ê¤¤Ç¤°Õ¤Î¥Õ¥©¡¼¥à¤Î¤³¤È¤Ç¤¹¡£ ¼«¸Êɾ²Á·¿¥Õ¥©¡¼¥à¤Ï¤½¤ì¼«¿È¤Ëɾ²Á¤µ¤ì¡¢ ɾ²Á·ë²Ì¤Ïɾ²Á¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ÈƱ¤¸¤â¤Î¤Ç¤¹¡£ ¤Ä¤Þ¤ê¡¢¿ô25¤Ï25¤Èɾ²Á¤µ¤ì¡¢ ʸ»úÎó"foo"¤Ïʸ»úÎó"foo"¤Èɾ²Á¤µ¤ì¤Þ¤¹¡£ ƱÍͤˡ¢¥Ù¥¯¥È¥ë¤òɾ²Á¤·¤Æ¤â¥Ù¥¯¥È¥ë¤Î¸Ä¡¹¤ÎÍ×ÁǤòɾ²Á¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤½¤ÎÆâÍÆ¤ò¤Þ¤Ã¤¿¤¯Êѹ¹¤¹¤ë¤³¤È¤Ê¤¯¡¢Æ±¤¸¥Ù¥¯¥È¥ë¤òÊÖ¤·¤Þ¤¹¡£

'123               ; ɾ²Á¤·¤Æ¤¤¤Ê¤¤¿ô
     ⇒ 123
123                ; ÉáÄ̤ɤª¤êɾ²Á¡£·ë²Ì¤ÏƱ¤¸
     ⇒ 123
(eval '123)        ; ¡Ø¼ê¤Ç¡Ùɾ²Á¡£·ë²Ì¤ÏƱ¤¸
     ⇒ 123
(eval (eval '123)) ; 2²óɾ²Á¤·¤Æ¤â¤Ê¤Ë¤âÊѤï¤é¤Ê¤¤
     ⇒ 123

Lisp¥³¡¼¥É¤Ë¤ª¤¤¤Æ¤Ï¡¢¿ô¡¢Ê¸»ú¡¢Ê¸»úÎ󡢤µ¤é¤Ë¥Ù¥¯¥È¥ë¤Ç¤µ¤¨¤â¡¢ ¤½¤ì¤é¤¬¼«¸Êɾ²Á·¿¤Ç¤¢¤ë»ö¼Â¤òÍøÍѤ·¤Æ½ñ¤¯¤Î¤¬ÉáÄ̤Ǥ¹¡£ ¤·¤«¤·¡¢ÆþÎϹ½Ê¸¤ò»ý¤¿¤Ê¤¤·¿¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤³¤Î¤è¤¦¤Ë¤·¤Þ¤»¤ó¡£ ¤È¤¤¤¦¤Î¤Ï¡¢¤½¤ì¤é¤ò¥Æ¥­¥¹¥È¤È¤·¤Æ½ñ¤¯ÊýË¡¤¬¤Ê¤¤¤«¤é¤Ç¤¹¡£ ¤½¤Î¤è¤¦¤Ê·¿¤ò´Þ¤àLisp¼°¤ò¹½À®¤¹¤ë¤Ë¤Ï¡¢Lisp¥×¥í¥°¥é¥à¤ò»È¤¤¤Þ¤¹¡£

;; ¥Ð¥Ã¥Õ¥¡¥ª¥Ö¥¸¥§¥¯¥È¤ò´Þ¤à¼°¤òºî¤ë
(setq print-exp (list 'print (current-buffer)))
     ⇒ (print #<buffer eval.texi>)
;; ¤½¤ì¤òɾ²Á¤¹¤ë
(eval print-exp)
     -| #<buffer eval.texi>
     ⇒ #<buffer eval.texi>