Next: Unloading, Previous: Repeated Loading, Up: Loading [Contents][Index]
provide
¤Èrequire
¤Ï¡¢
¥Õ¥¡¥¤¥ë¤ò¼«Æ°Åª¤Ë¥í¡¼¥É¤¹¤ë¤¿¤á¤Îautoload
¤ÎÂåÂØ¼êÃʤǤ¹¡£
¤½¤ì¤é¤Ï»ØÄꤷ¤¿µ¡Ç½¡Êfeatures¡Ë¤È¤¤¤¦¹Í¤¨Êý¤Çưºî¤·¤Þ¤¹¡£
¼«Æ°¥í¡¼¥É¤ÏÆÃÄê¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Çµ¯Æ°¤·¤Þ¤¹¤¬¡¢
µ¡Ç½¤Ï¤½¤Î̾Á°¤Ç¥×¥í¥°¥é¥à¤¬ºÇ½é¤ËÍ׵ᤷ¤¿¤È¤¤Ë¥í¡¼¥É¤·¤Þ¤¹¡£
µ¡Ç½Ì¾¤Ï¡¢´Ø¿ô¤äÊÑ¿ô¤Ê¤É¤Î½¸¹ç¤òɽ¤¹¥·¥ó¥Ü¥ë¤Ç¤¹¡£ ¤½¤ì¤é¤òÄêµÁ¤¹¤ë¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢¤½¤Îµ¡Ç½¤òÄó¶¡¡Êprovide¡Ë¤·¤Þ¤¹¡£ ¤½¤ì¤é¤ò»È¤¦ÊÌ¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ ¤½¤Îµ¡Ç½¤òÍ×µá¡Êrequire¡Ë¤¹¤ë¤³¤È¤Ç¡¢ ¤½¤ì¤é¤¬ÄêµÁ¤µ¤ì¤ë¤³¤È¤ò³Î¼Â¤Ë¤·¤Þ¤¹¡£ ¤³¤¦¤¹¤ë¤È¡¢Ì¤¥í¡¼¥É¤Ç¤¢¤ì¤ÐÄêµÁ¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¤Þ¤¹¡£
µ¡Ç½¤òÍ׵᤹¤ë¤Ë¤Ï¡¢µ¡Ç½Ì¾¤ò°ú¿ô¤Ë¤·¤Ærequire
¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
require
¤Ï¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ôfeatures
¤òÄ´¤Ù¤Æ¡¢
ÌÜŪ¤Îµ¡Ç½¤¬¤¹¤Ç¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«Ä´¤Ù¤Þ¤¹¡£
Ä󶡤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢Å¬Åö¤Ê¥Õ¥¡¥¤¥ë¤«¤éµ¡Ç½¤ò¥í¡¼¥É¤·¤Þ¤¹¡£
¤³¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢¥È¥Ã¥×¥ì¥Ù¥ë¤Çprovide
¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢
features
¤Ëµ¡Ç½¤òÄɲ乤ë¤Ù¤¤Ç¤¹¡£
¤½¤¦¤·¤Ê¤¤¤È¡¢require
¤Ï¥¨¥é¡¼¤òÄÌÃΤ·¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¢emacs/lisp/prolog.el ¤Ë¤Ï¡¢
¤Ä¤®¤Î¥³¡¼¥É¤Î¤è¤¦¤Êrun-prolog
¤ÎÄêµÁ¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¡£
(defun run-prolog () "Run an inferior Prolog process, with I/O via buffer *prolog*." (interactive) (require 'comint) (switch-to-buffer (make-comint "prolog" prolog-program-name)) (inferior-prolog-mode))
(require 'comint)
¤Ï¡¢¥Õ¥¡¥¤¥ëcomint.el¤¬Ì¤¥í¡¼¥É¤Ç¤¢¤ë¤È¡¢
¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢make-comint
¤¬ÄêµÁºÑ¤ß¤Ç¤¢¤ë¤³¤È¤òÊݾڤ·¤Þ¤¹¡£
ÉáÄÌ¡¢µ¡Ç½¤Ë¤Ï¡¢¤½¤Îµ¡Ç½¤òÄ󶡤¹¤ë¥Õ¥¡¥¤¥ë̾¤«¤é¤È¤Ã¤¿Ì¾Á°¤òÉÕ¤±¤Þ¤¹¤«¤é¡¢
require
¤Ë¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤹ¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
comint.el¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¤Ä¤®¤Î¥È¥Ã¥×¥ì¥Ù¥ë¤Î¼°¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¡£
(provide 'comint)
¤³¤ì¤Ë¤è¤ê¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ôfeatures
¤Î¥ê¥¹¥È¤Ë
comint
¤¬Äɲ䵤ì¤ë¤Î¤Ç¡¢
¤³¤ì°Ê¹ß¤Ë(require 'comint)
¤ò¼Â¹Ô¤·¤Æ¤â¡¢
¤Ê¤Ë¤â¤·¤Ê¤¤¤Ç¤è¤¤¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¥Õ¥¡¥¤¥ë¤Î¥È¥Ã¥×¥ì¥Ù¥ë¤Çrequire
¤ò»È¤¦¤È¡¢
¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤¹¤ë¾ì¹ç¤ÈƱÍͤˡ¢
¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥Ð¥¤¥È¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤¡Êsee Byte Compilation¡Ë¤Ë¤â
require
¤Ë¤Ï¸ú²Ì¤¬¤¢¤ê¤Þ¤¹¡£
Í׵ᤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤Ë¡¢
¥Ð¥¤¥È¥³¥ó¥Ñ¥¤¥é¤¬ÃΤäƤ¤¤ëɬÍפ¬¤¢¤ë¥Þ¥¯¥í¤¬Æþ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤¹¡£
¥È¥Ã¥×¥ì¥Ù¥ë¤Îrequire
¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢
¥Ð¥¤¥È¥³¥ó¥Ñ¥¤¥ëÃæ¤Ëɾ²Á¤µ¤ì¤Þ¤¹¤¬¡¢
provide
¤Î¸Æ¤Ó½Ð¤·¤Ïɾ²Á¤·¤Þ¤»¤ó¡£
¤·¤¿¤¬¤Ã¤Æ¡¢¤Ä¤®¤ÎÎã¤Î¤è¤¦¤Ë¡¢
Ʊ¤¸µ¡Ç½¤ËÂФ¹¤ëprovide
¤Ë³¤±¤Ærequire
¤ò½ñ¤¯¤³¤È¤Ç¡¢
¥Ð¥¤¥È¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Þ¤¨¤ËÄêµÁ¤Î¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤¹¤ë¤³¤È¤ò³Î¼Â¤Ë¤Ç¤¤Þ¤¹¡£
(provide 'my-feature) ; ¥Ð¥¤¥È¥³¥ó¥Ñ¥¤¥é¤Ï̵»ë¤·¡¢
; load
¤Ïɾ²Á¤¹¤ë
(require 'my-feature) ; ¥Ð¥¤¥È¥³¥ó¥Ñ¥¤¥é¤Ïɾ²Á¤¹¤ë
¥³¥ó¥Ñ¥¤¥é¤Ïprovide
¤ò̵»ë¤·¡¢
³¤¯require
¤Î½èÍý¤Ç¤ÏÅö³º¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¤Þ¤¹¡£
¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥É»þ¤Ë¤Ïprovide
¤Î¸Æ¤Ó½Ð¤·¤ò¼Â¹Ô¤¹¤ë¤Î¤Ç¡¢
¤½¤Î¤¢¤È¤Îrequire
¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢
¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤¹¤ë¤È¤¤Ë¤Ï¤Ê¤Ë¤â¤·¤Þ¤»¤ó¡£
¤³¤Î´Ø¿ô¤Ï¡¢µ¡Ç½feature¤ò¥í¡¼¥É¤·½ª¤¨¤¿¤³¤È¡¢¤¢¤ë¤¤¤Ï¡¢ ¥í¡¼¥ÉÃæ¤Ç¤¢¤ë¤³¤È¤ò¸½ºß¤ÎEmacs¥»¥Ã¥·¥ç¥óÆâ¤ÇÀë¸À¤¹¤ë¡£ ¤Ä¤Þ¤ê¡¢feature¤Ë´ØÏ¢¤·¤¿µ¡Ç½¤¬Â¾¤ÎLisp¥×¥í¥°¥é¥à¤«¤éÍøÍѤǤ¤ë¤³¤È¤ò °ÕÌ£¤¹¤ë¡£
provide
¤Î¸Æ¤Ó½Ð¤·¤ÎľÀܤθú²Ì¤Ï¡¢
feature¤¬¥ê¥¹¥Èfeatures
¤ËÆþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢
feature¤ò¥ê¥¹¥Èfeatures
¤ÎÀèÆ¬¤ËÆþ¤ì¤ë¤³¤È¤Ç¤¢¤ë¡£
°ú¿ôfeature¤Ï¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¤³¤È¡£
provide
¤Ïfeature¤òÊÖ¤¹¡£
features ⇒ (bar bish) (provide 'foo) ⇒ foo features ⇒ (foo bar bish)
¼«Æ°¥í¡¼¥É¤Ë¤è¤Ã¤Æ¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¤Æ¤¤¤ë¤È¤¡¢
¤½¤ÎÆâÍÆ¤òɾ²Á¤¹¤ë¤³¤È¤Ç¥¨¥é¡¼¤Ë¤Ê¤Ã¤Æ¥í¡¼¥É¤òÃæ»ß¤¹¤ë¤È¡¢
¥í¡¼¥ÉÃæ¤Ë¹Ô¤ï¤ì¤¿´Ø¿ôÄêµÁ¤äprovide
¤Î¸Æ¤Ó½Ð¤·¤Ï¤â¤È¤ËÌ᤹¡£
see Autoload¡£
¤³¤Î´Ø¿ô¤Ï¡Ê(featurep feature)
¤ò»È¤Ã¤Æ¡Ë
¸½ºß¤ÎEmacs¥»¥Ã¥·¥ç¥óÆâ¤Ëfeature¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë¡£
°ú¿ôfeature¤Ï¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¤³¤È¡£
µ¡Ç½¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢require
¤Ï¡¢
load
¤ò»È¤Ã¤Æfilename¤ò¥í¡¼¥É¤¹¤ë¡£
filename¤ò»ØÄꤷ¤Ê¤¤¤È¡¢¥·¥ó¥Ü¥ëfeature¤Î̾Á°¤ò
¥í¡¼¥É¤¹¤Ù¤¥Õ¥¡¥¤¥ë̾¤Î´ð¤Ë¤¹¤ë¡£
¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤Î¾ì¹ç¤Ë¤Ï¡¢require
¤Ï¡¢
ÀÜÈø¼¤òɬ¤ºÉղä·¤Æfeature¤òõ¤¹¡£
feature¤À¤±¤Î̾Á°¤Î¥Õ¥¡¥¤¥ë¤Ïõ¤µ¤Ê¤¤¡£
feature¤òÄ󶡤¹¤ë¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥É¤Ë¼ºÇÔ¤¹¤ë¤È¡¢
require
¤Ï¥¨¥é¡¼
‘Required feature feature was not provided’¤òÄÌÃΤ¹¤ë¡£
¤³¤Î´Ø¿ô¤Ï¡¢¸½ºß¤ÎEmacs¥»¥Ã¥·¥ç¥ó¤Çfeature¤¬Ä󶡤µ¤ì¤Æ¤¤¤ì¤Ð
¡Ê¤Ä¤Þ¤ê¡¢feature¤¬features
¤Î¥á¥ó¥Ð¤Ç¤¢¤ì¤Ð¡Ë
t
¤òÊÖ¤¹¡£
¤³¤ÎÊÑ¿ô¤ÎÃͤϡ¢
¸½ºß¤ÎEmacs¥»¥Ã¥·¥ç¥ó¤Ë¥í¡¼¥ÉºÑ¤ß¤Îµ¡Ç½¤òɽ¤¹¥·¥ó¥Ü¥ë¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£
³Æ¥·¥ó¥Ü¥ë¤Ï¡¢provide
¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¤³¤Î¥ê¥¹¥È¤ËÄɲ䵤ì¤ë¡£
¥ê¥¹¥Èfeatures
Æâ¤ÎÍ×ÁǤνçÈ֤ϴط¸¤Ê¤¤¡£