Next: Equality Predicates, Previous: Editing Types, Up: Lisp Data Types [Contents][Index]
Emacs Lisp¥¤¥ó¥¿¡¼¥×¥ê¥¿¼«¿È¤Ï¡¢´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤È¤¤ËÅϤ¹¼Â°ú¿ô¤Î ·¿¸¡ºº¤ò¹Ô¤¤¤Þ¤»¤ó¡£ ¤½¤¦¤Ç¤¤Ê¤¤¤Î¤Ï¡¢Â¾¤Î¥×¥í¥°¥é¥à¸À¸ì¤¬¹Ô¤¦¤è¤¦¤Ë¤Ï¡¢ Lisp¤Î´Ø¿ô¤Î°ú¿ô¤Ë¤Ï¥Ç¡¼¥¿·¿¤ÎÀë¸À¤¬¤Ê¤¤¤«¤é¤Ç¤¹¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢³Æ¼Â°ú¿ô¤¬¤½¤Î´Ø¿ô¤Ç°·¤¨¤ë·¿¤Ë°¤¹¤ë¤«¤É¤¦¤«¤ò¸¡ºº¤¹¤ë¤Î¤Ï¡¢ ³Æ´Ø¿ô¤ÎÀÕǤ¤Ç¤¹¡£
¤¹¤Ù¤Æ¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ï¡¢É¬ÍפʤȤ¤Ë¤Ï¼Â°ú¿ô¤Î·¿¸¡ºº¤ò¹Ô¤¤¡¢
°ú¿ô¤¬¸í¤Ã¤¿·¿¤Ç¤¢¤ì¤Ð¡¢¥¨¥é¡¼wrong-type-argument¤òÄÌÃΤ·¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¢+¤Ë°·¤¨¤Ê¤¤°ú¿ô¤òÅϤ¹¤È¡¢¤Ä¤®¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
(+ 2 'a)
error→ Wrong type argument: number-or-marker-p, a
ÆÉ¼Ô¤Î¥×¥í¥°¥é¥à¤Ç¡¢°Û¤Ê¤ë·¿¤ò°Û¤Ê¤ë¤è¤¦¤Ë°·¤¤¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ ÌÀ¼¨Åª¤Ë·¿¸¡ºº¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤Î·¿¤ò¸¡ºº¤¹¤ë¤â¤Ã¤È¤â°ìÈÌŪ¤ÊÊýË¡¤Ï¡¢ ·¿½Ò¸ì¡Êtype predicate¡Ë´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¤¹¡£ Emacs¤Ë¤Ï¡¢³Æ·¿¤´¤È¤Ë·¿½Ò¸ì¤¬¤¢¤ê¡¢ ·¿¤òÁȤ߹ç¤ï¤»¤¿¤â¤Î¤ËÂФ¹¤ë½Ò¸ì¤â¤¢¤ê¤Þ¤¹¡£
·¿½Ò¸ì´Ø¿ô¤Ï1¤Ä¤Î°ú¿ô¤ò¼è¤ê¤Þ¤¹¡£
°ú¿ô¤¬Å¬Àڤʷ¿¤Ë°¤·¤Æ¤¤¤ì¤Ðt¤òÊÖ¤·¡¢
¤µ¤â¤Ê¤±¤ì¤Ðnil¤òÊÖ¤·¤Þ¤¹¡£
½Ò¸ì´Ø¿ô¤Ë´Ø¤¹¤ëLisp°ìÈ̤δ·½¬¤Ë½¾¤Ã¤Æ¡¢
¤Û¤È¤ó¤É¤Î·¿½Ò¸ì¤Î̾Á°¤Ï‘p’¤Ç½ª¤ê¤Þ¤¹¡£
°Ê²¼¤Ï¡¢¥ê¥¹¥È¤Î¸¡ºº¤Ë½Ò¸ìlistp¤ò»È¤¤¡¢
¥·¥ó¥Ü¥ë¤Î¸¡ºº¤Ë½Ò¸ìsymbolp¤ò»È¤¦Îã¤Ç¤¹¡£
(defun add-on (x)
(cond ((symbolp x)
;; X¤¬¥·¥ó¥Ü¥ë¤Ê¤é¤Ð¡¢¤½¤ì¤òLIST¤Ë²Ã¤¨¤ë
(setq list (cons x list)))
((listp x)
;; X¤¬¥ê¥¹¥È¤Ê¤é¤Ð¡¢¤½¤ÎÍ×ÁǤòLIST¤ËÄɲ乤ë
(setq list (append x list)))
(t
;; ¥·¥ó¥Ü¥ë¤È¥ê¥¹¥È¤À¤±¤ò°·¤¦
(error "Invalid argument %s in add-on" x))))
ÄêµÁºÑ¤ß¤Î·¿½Ò¸ì¤ò¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ë¡¢»²¾ÈÀè¤òÊ»µ¤·¤Æ¤¢¤²¤Æ¤ª¤¤Þ¤¹¡£
atomsee atom¡£
arraypsee arrayp¡£
bool-vector-psee bool-vector-p¡£
bufferpsee bufferp¡£
byte-code-function-psee byte-code-function-p¡£
case-table-psee case-table-p¡£
char-or-string-psee char-or-string-p¡£
char-table-psee char-table-p¡£
commandpsee commandp¡£
conspsee consp¡£
display-table-psee display-table-p¡£
floatpsee floatp¡£
frame-configuration-psee frame-configuration-p¡£
frame-live-psee frame-live-p¡£
framepsee framep¡£
functionpsee functionp¡£
integer-or-marker-psee integer-or-marker-p¡£
integerpsee integerp¡£
keymappsee keymapp¡£
listpsee listp¡£
markerpsee markerp¡£
wholenumpsee wholenump¡£
nlistpsee nlistp¡£
numberpsee numberp¡£
number-or-marker-psee number-or-marker-p¡£
overlaypsee overlayp¡£
processpsee processp¡£
sequencepsee sequencep¡£
stringpsee stringp¡£
subrpsee subrp¡£
symbolpsee symbolp¡£
syntax-table-psee syntax-table-p¡£
user-variable-psee user-variable-p¡£
vectorpsee vectorp¡£
window-configuration-psee window-configuration-p¡£
window-live-psee window-live-p¡£
windowpsee windowp¡£
¥ª¥Ö¥¸¥§¥¯¥È¤Î·¿¤òÄ´¤Ù¤ë¤â¤Ã¤È¤â°ìÈÌŪ¤ÊÊýË¡¤Ï¡¢
´Ø¿ôtype-of¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¤¹¡£
³Æ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤¿¤Ã¤¿1¤Ä¤Î´ðËÜ·¿¤Ë°¤¹¤ë¤³¤È¤ò»×¤¤½Ð¤·¤Æ¤¯¤À¤µ¤¤¡£
type-of¤Ï¤É¤Î1¤Ä¤«¤ò¶µ¤¨¤Æ¤¯¤ì¤Þ¤¹¡Êsee Lisp Data Types¡Ë¡£
¤·¤«¤·¡¢type-of¤Ï¡¢´ðËÜ·¿°Ê³°¤Ë¤Ä¤¤¤Æ¤Ï¤Ê¤Ë¤âÃΤê¤Þ¤»¤ó¡£
¿¤¯¤Î¾ì¹ç¡¢type-of¤è¤ê·¿½Ò¸ì¤ò»È¤¦¤Û¤¦¤¬ÊØÍø¤Ç¤·¤ç¤¦¡£
¤³¤Î´Ø¿ô¤Ï¡¢object¤Î´ðËÜ·¿¤ò¼¨¤¹¥·¥ó¥Ü¥ë¤òÊÖ¤¹¡£
¤½¤ÎÃͤϡ¢
symbol¡¢
integer¡¢float¡¢string¡¢cons¡¢vector¡¢
char-table¡¢bool-vector¡¢subr¡¢
compiled-function¡¢marker¡¢overlay¡¢window¡¢
buffer¡¢frame¡¢process¡¢window-configuration¤Î
¥·¥ó¥Ü¥ë¤Î¤¦¤Á¤Î1¤Ä¡£
(type-of 1)
⇒ integer
(type-of 'nil)
⇒ symbol
(type-of '()) ; ()¤Ïnil
⇒ symbol
(type-of '(x))
⇒ cons
Next: Equality Predicates, Previous: Editing Types, Up: Lisp Data Types [Contents][Index]