Next: , Previous: Function Names, Up: Functions   [Contents][Index]


11.4 ´Ø¿ô¤òÄêµÁ¤¹¤ë

´Ø¿ô¤òºîÀ®¤¹¤ë¤È¤­¤Ë¤Ï¡¢ÉáÄÌ¡¢´Ø¿ô¤Ë̾Á°¤òÍ¿¤¨¤Þ¤¹¡£ ¤³¤ì¤ò´Ø¿ô¤òÄêµÁ¤¹¤ë¤È¸Æ¤Ó¡¢ ¥¹¥Ú¥·¥ã¥ë¥Õ¥©¡¼¥àdefun¤Ç¹Ô¤¤¤Þ¤¹¡£

Special Form: defun name argument-list body-forms

defun¤Ï¡¢¿·¤¿¤ËLisp´Ø¿ô¤òÄêµÁ¤¹¤ëÉáÄ̤ÎÊýË¡¤Ç¤¢¤ë¡£ ¤³¤ì¤Ï¡¢¥·¥ó¥Ü¥ëname¤ò¤Ä¤®¤Î¤è¤¦¤Ê´Ø¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡£

(lambda argument-list . body-forms)

defun¤Ï¡¢¤³¤Î¥é¥à¥À¼°¤òname¤Î´Ø¿ô¥»¥ë¤Ë³ÊǼ¤¹¤ë¡£ ÃÍname¤òÊÖ¤¹¤¬¡¢ÉáÄÌ¡¢¤³¤ì¤Ï̵»ë¤¹¤ë¡£

Á°½Ò¡Êsee Lambda Expressions¡Ë¤Î¤è¤¦¤Ë¡¢ argument-list¤Ï°ú¿ô̾¤Î¥ê¥¹¥È¤Ç¤¢¤ê¡¢ ¥­¡¼¥ï¡¼¥É&optional¤ä&rest¤¬Æþ¤Ã¤Æ¤¤¤Æ¤â¤è¤¤¡£ ¤Þ¤¿¡¢body-forms¤ÎºÇ½é¤Î2¤Ä¤Ï¡¢ÀâÌÀʸ»úÎó¤ÈÂÐÏÃÀë¸À¤Ç¤â¤è¤¤¡£

Ʊ°ì¤Î¥·¥ó¥Ü¥ëname¤òÊÑ¿ô¤È¤·¤Æ»È¤Ã¤Æ¤¤¤Æ¤â¾×ÆÍ¤Ï¤Ê¤¤¡£ ¤È¤¤¤¦¤Î¤Ï¡¢¥·¥ó¥Ü¥ë¤ÎÃÍ¥»¥ë¤Ï´Ø¿ô¥»¥ë¤È¤ÏÆÈΩ¤À¤«¤é¤Ç¤¢¤ë¡£ see Symbol Components¡£

Îã¤ò¼¨¤½¤¦¡£

(defun foo () 5)
     ⇒ foo
(foo)
     ⇒ 5
(defun bar (a &optional b &rest c)
    (list a b c))
     ⇒ bar
(bar 1 2 3 4 5)
     ⇒ (1 2 (3 4 5))
(bar 1)
     ⇒ (1 nil nil)
(bar)
error→ Wrong number of arguments.
(defun capitalize-backwards ()
  "Upcase the last letter of a word."
  (interactive)
  (backward-word 1)
  (forward-word 1)
  (backward-char 1)
  (capitalize-word 1))
     ⇒ capitalize-backwards

´û¸¤Î´Ø¿ô¤ò°Õ¿Þ¤»¤º¤ËºÆÄêµÁ¤·¤Ê¤¤¤è¤¦¤ËÃí°Õ¤¹¤ë¤³¤È¡£ defun¤Ï¡¢¤¿¤È¤¨car¤Ê¤É¤Î´ðËÜ´Ø¿ô¤Ç¤¢¤Ã¤Æ¤â¡¢ ¤Ê¤ó¤Îí´í°¤âÃí°Õ¤â¤»¤º¤ËºÆÄêµÁ¤·¤Æ¤·¤Þ¤¦¡£ ´û¸´Ø¿ô¤ÎºÆÄêµÁ¤ÏÃí°Õ¿¼¤¯¹Ô¤¦¤¬¡¢ ÉÔËܰդʺÆÄêµÁ¤È½Ï¹Í¤·¤¿ºÆÄêµÁ¤ò¶èÊ̤¹¤ëÊýË¡¤Ï¤Ê¤¤¡£

Function: defalias name definition

¤³¤Î¥¹¥Ú¥·¥ã¥ë¥Õ¥©¡¼¥à¤Ï¡¢ ¥·¥ó¥Ü¥ëname¤òÄêµÁdefinition¡ÊǤ°Õ¤ÎÀµ¤·¤¤Lisp´Ø¿ô¡Ë¤È¤¹¤ë ´Ø¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡£

defalias¤ò»È¤¦Àµ¤·¤¤¾ì½ê¤Ï¡¢ ÆÃÄê¤Î´Ø¿ô̾¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì½ê¤Ç¤¢¤ë¡£ ÆÃ¤Ë¡¢¥í¡¼¥ÉÃæ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÇÌÀ¼¨Åª¤Ë̾Á°¤¬¸½¤ì¤Æ¤¤¤ë¾ì½ê¤Ç¤¢¤ë¡£ ¤È¤¤¤¦¤Î¤Ï¡¢defalias¤Ï¡¢defun¤ÈƱÍͤˡ¢ ´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤òµ­Ï¿¤¹¤ë¤«¤é¤Ç¤¢¤ë¡Êsee Unloading¡Ë¡£

°ìÊý¡¢Â¾¤ÎÌÜŪ¤Ç´Ø¿ôÄêµÁ¤òÁàºî¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ ¤½¤Î¤è¤¦¤Êµ­Ï¿¤òÊÝ»ý¤·¤Ê¤¤fset¤ò»È¤¦¤Î¤¬¤è¤¤¡£

defun¤Î¤è¤¦¤Ë´Ø¿ô¤òÄêµÁ¤·¡¢¤«¤Ä¡¢ Lisp¥³¥ó¥Ñ¥¤¥é¤Ë´Ø¿ôÄêµÁ¤òŸ³«¤¹¤ë¤è¤¦¤Ë»Ø¼¨¤¹¤ë defsubst¤â»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ See Inline Functions¡£