Next: Problems with Macros, Previous: Defining Macros, Up: Macros [Contents][Index]
¥Þ¥¯¥í¤Ç¤Ï¡¢Äê¿ôÉôʬ¤ÈÈóÄê¿ôÉôʬ¤òÁȤ߹ç¤ï¤»¤¿Â礤ʥꥹ¥È¹½Â¤¤ò ¹½ÃÛ¤¹¤ëɬÍפ¬¤·¤Ð¤·¤Ð¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤ò´Êñ¤Ë¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢ ¡ÊÄ̾¥Ð¥Ã¥¯¥¯¥©¡¼¥È¡Êbackquote¡Ë¤È¸Æ¤Ð¤ì¤ë¡Ë‘`’¹½Ê¸¤ò »È¤¤¤Þ¤¹¡£
¥Ð¥Ã¥¯¥¯¥©¡¼¥È¤Ë¤è¤ê¡¢¥ê¥¹¥È¤ÎÍ×ÁǤòÁªÂò¤Ëɾ²Á¤·¤Ä¤Ä¡¢
¥ê¥¹¥È¤ò¥¯¥©¡¼¥È¤Ç¤¤Þ¤¹¡£
¤â¤Ã¤È¤âñ½ã¤Ê¾ì¹ç¡¢¤³¤ì¤Ï¥¹¥Ú¥·¥ã¥ë¥Õ¥©¡¼¥àquote
¡Êsee Quoting¡Ë¤È
Åù²Á¤Ç¤¹¡£
¤¿¤È¤¨¤Ð¡¢¤Ä¤®¤Î2¤Ä¤Î¥Õ¥©¡¼¥à¤ÏÅù²Á¤Ê·ë²Ì¤Ë¤Ê¤ê¤Þ¤¹¡£
`(a list of (+ 2 3) elements) ⇒ (a list of (+ 2 3) elements)
'(a list of (+ 2 3) elements) ⇒ (a list of (+ 2 3) elements)
¥Ð¥Ã¥¯¥¯¥©¡¼¥È¤Î°ú¿ô¤ÎÆâ¦¤Ë¤¢¤ëÆÃÊ̤ʰõ‘,’¤Ï¡¢ Ãͤ¬Äê¿ô¤Ç¤Ï¤Ê¤¤¤³¤È¤òɽ¤·¤Þ¤¹¡£ ¥Ð¥Ã¥¯¥¯¥©¡¼¥È¤Ï¡¢¥ê¥¹¥È¹½Â¤¤ÎÃæ¤Î‘,’¤Î°ú¿ô¤òɾ²Á¤·¡¢ ÃͤÇÃÖ¤´¹¤¨¤Þ¤¹¡£
(list 'a 'list 'of (+ 2 3) 'elements) ⇒ (a list of 5 elements)
`(a list of ,(+ 2 3) elements) ⇒ (a list of 5 elements)
‘,’¤Ë¤è¤ëÃÖ¤´¹¤¨¤Ï¡¢¥ê¥¹¥È¹½Â¤¤Î¿¼¤¤¥ì¥Ù¥ë¤Ç¤âµö¤µ¤ì¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢¤Ä¤®¤Î¤È¤ª¤ê¤Ç¤¹¡£
(defmacro t-becomes-nil (variable) `(if (eq ,variable t) (setq ,variable nil)))
(t-becomes-nil foo) ≡ (if (eq foo t) (setq foo nil))
ÆÃÊ̤ʰõ‘,@’¤ò»È¤Ã¤Æ¡¢ ɾ²Á·ë²Ì¤ò·ë²Ì¤È¤Ê¤ë¥ê¥¹¥È¤Ë·Ò¤®¹ç¤ï¤»¤ë¡Êsplice¡Ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£ ·Ò¤®¹ç¤ï¤»¤¿¥ê¥¹¥È¤ÎÍ×ÁǤϡ¢·ë²Ì¤È¤Ê¤ë¥ê¥¹¥È¤Î¾¤ÎÍ×ÁÇ¤ÈÆ±¤¸¥ì¥Ù¥ë¤Ë¤Ê¤ê¤Þ¤¹¡£ ‘`’¤ò»È¤ï¤Ê¤¤Åù²Á¤Ê¥³¡¼¥É¤Ï¤·¤Ð¤·¤ÐÆÉ¤ßÆñ¤¯¤Ê¤ê¤Þ¤¹¡£ Îã¤ò¤¢¤²¤Þ¤·¤ç¤¦¡£
(setq some-list '(2 3)) ⇒ (2 3)
(cons 1 (append some-list '(4) some-list)) ⇒ (1 2 3 4 2 3)
`(1 ,@some-list 4 ,@some-list) ⇒ (1 2 3 4 2 3)
(setq list '(hack foo bar)) ⇒ (hack foo bar)
(cons 'use (cons 'the (cons 'words (append (cdr list) '(as elements))))) ⇒ (use the words foo bar as elements)
`(use the words ,@(cdr list) as elements) ⇒ (use the words foo bar as elements)
19.29ÈǤè¤ê¤Þ¤¨¤ÎEmacs¤ÎµìÈǤǤϡ¢ ‘`’¤Î¹½Ê¸¤Ï°Û¤Ê¤Ã¤Æ¤¤¤Æ¡¢ ¥Ð¥Ã¥¯¥¯¥©¡¼¥È¹½Ê¸Á´ÂΤò°Ï¤à³ç¸Ì¤Î;ʬ¤Ê¥ì¥Ù¥ë¤¬É¬ÍפǤ·¤¿¡£ ƱÍͤˡ¢‘,’¤ä‘,@’¤ÎÃÖ´¹¤Ç¤â¡¢ ‘,’¤ä‘,@’¡¢¤ª¤è¤Ó¸å³¤Î¼°¤ò°Ï¤à³ç¸Ì¤Î;ʬ¤Ê¥ì¥Ù¥ë¤¬1¤ÄɬÍפǤ·¤¿¡£ ¸Å¤¤¹½Ê¸¤Ç¤Ï¡¢‘`’¡¢ ‘,’¡¢‘,@’¤È¸å³¤Î¼°¤È¤Î¤¢¤¤¤À¤Ë¤Ï ¶õÇò¤¬É¬ÍפǤ·¤¿¡£
¤³¤Î¹½Ê¸¤â¼õ¤±ÉÕ¤±¤Þ¤¹¤¬¡¢¤³¤ì¤ÏEmacs¤ÎµìÈǤȤθߴ¹À¤Î¤¿¤á¤Ç¤¢¤ê¡¢ ¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï»È¤ï¤Ê¤¤¤³¤È¤ò´«¤á¤Þ¤¹¡£