Next: , Previous: Streams Intro, Up: Read and Print   [Contents][Index]


18.2 ÆþÎÏ¥¹¥È¥ê¡¼¥à

¥Æ¥­¥¹¥È¤òÆÉ¤ß¼è¤ë¤Û¤È¤ó¤É¤ÎLisp´Ø¿ô¤Ï¡¢ ¥¹¥È¥ê¡¼¥à¡Êstream¡Ë¤ò°ú¿ô¤È¤·¤Æ¼õ¤±ÉÕ¤±¤Þ¤¹¡£ ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ï¡¢ÆÉ¤ß¼è¤ë¤Ù¤­¥Æ¥­¥¹¥È¤Îʸ»ú¤ò¤É¤³¤«¤é¤É¤Î¤è¤¦¤ËÆÀ¤ë¤Î¤«¤ò »ØÄꤷ¤Þ¤¹¡£ ÆþÎÏ¥¹¥È¥ê¡¼¥à¤È¤·¤Æ»È¤¨¤ë·¿¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£

buffer

ÆþÎÏʸ»ú¤Ï¥Ð¥Ã¥Õ¥¡buffer¤Î¥Ý¥¤¥ó¥Èľ¸å¤Îʸ»ú¤«¤éÆÉ¤ß¼è¤é¤ì¤ë¡£ 1ʸ»úÆÉ¤à¤´¤È¤Ë¥Ý¥¤¥ó¥È¤ò¿Ê¤á¤ë¡£

marker

ÆþÎÏʸ»ú¤Ï¡¢¥Þ¡¼¥«marker¤¬¤¢¤ë¥Ð¥Ã¥Õ¥¡¤Î ¥Þ¡¼¥«Ä¾¸å¤Îʸ»ú¤«¤éÆÉ¤ß¼è¤é¤ì¤ë¡£ 1ʸ»úÆÉ¤à¤´¤È¤Ë¥Þ¡¼¥«°ÌÃÖ¤ò¿Ê¤á¤ë¡£ ¥¹¥È¥ê¡¼¥à¤¬¥Þ¡¼¥«¤Ç¤¢¤ë¤È¤­¤Ë¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤Î¥Ý¥¤¥ó¥È°ÌÃ֤ϱƶÁ¤·¤Ê¤¤¡£

string

ÆþÎÏʸ»ú¤Ïʸ»úÎóstring¤ÎÀèÆ¬Ê¸»ú¤«¤éɬÍפÊʸ»ú¿ô¤À¤±ÆÉ¤ß¼è¤é¤ì¤ë¡£

function

ÆþÎÏʸ»ú¤Ï´Ø¿ôfunction¤¬À¸À®¤¹¤ë¡£ ¤³¤Î´Ø¿ô¤Ï2¼ïÎà¤Î¸Æ¤Ó½Ð¤·Êý¤ò°·¤¨¤ëɬÍפ¬¤¢¤ë¡£

t

¥¹¥È¥ê¡¼¥à¤È¤·¤Æt¤ò»È¤¦¤È¡¢¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤«¤éÆÉ¤ß¼è¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ ¼ÂºÝ¤Ë¤Ï¡¢¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤òɽ¼¨¤·¥æ¡¼¥¶¡¼¤¬»ØÄꤷ¤¿¥Æ¥­¥¹¥È¤«¤éÀ®¤ëʸ»úÎó¤òºî¤ê¡¢ ¤½¤ì¤òÆþÎÏ¥¹¥È¥ê¡¼¥à¤È¤·¤Æ»È¤¦¡£

nil

ÆþÎÏ¥¹¥È¥ê¡¼¥à¤È¤·¤Ænil¤ò»ØÄꤹ¤ë¤È¡¢ standard-input¤ÎÃͤò¤«¤ï¤ê¤Ë»È¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ ¤½¤ÎÃͤϥǥե©¥ë¥ÈÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ç¤¢¤ê¡¢ nil°Ê³°¤ÎÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ç¤¢¤ë¤³¤È¡£

symbol

ÆþÎÏ¥¹¥È¥ê¡¼¥à¤È¤·¤Æ¤Î¥·¥ó¥Ü¥ë¤Ï¡¢ ¤½¤Î¥·¥ó¥Ü¥ë¤Î¡Ê¤¢¤ì¤Ð¡Ë´Ø¿ôÄêµÁ¤ÈÅù²Á¤Ç¤¢¤ë¡£

¥Ð¥Ã¥Õ¥¡¤Ç¤¢¤ë¥¹¥È¥ê¡¼¥à¤«¤é¤ÎÆÉ¤ß¼è¤ê¤ÎÎã¤ò ÆÉ¤ß¼è¤êÁ°¸å¤Î¥Ý¥¤¥ó¥È°ÌÃÖ¤ò´Þ¤á¤Æ¼¨¤·¤Þ¤¹¡£

---------- Buffer: foo ----------
This∗ is the contents of foo.
---------- Buffer: foo ----------
(read (get-buffer "foo"))
     ⇒ is
(read (get-buffer "foo"))
     ⇒ the
---------- Buffer: foo ----------
This is the∗ contents of foo.
---------- Buffer: foo ----------

ºÇ½é¤ÎÆÉ¤ß¼è¤ê¤Ç¤Ï¶õÇò¤òÆÉ¤ßÈô¤Ð¤·¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ ÆÉ¤ß¼è¤ê¤Ç¤Ï¡¢°ÕÌ£¤¢¤ë¥Æ¥­¥¹¥È¤Î¤Þ¤¨¤Ë¤¢¤ëÇòʸ»ú¤Ï¤¤¤¯¤Ä¤Ç¤âÆÉ¤ßÈô¤Ð¤·¤Þ¤¹¡£

¤Ä¤®¤Ï¡¢¥Þ¡¼¥«¤ò¥¹¥È¥ê¡¼¥à¤È¤·¤ÆÆÉ¤ß¼è¤ëÎã¤Ç¤¹¡£ ¥Þ¡¼¥«¤Î½é´ü°ÌÃ֤ϲ¼¤Ë¼¨¤·¤¿¥Ð¥Ã¥Õ¥¡¤ÎÀèÆ¬¤Ë¤¢¤ê¤Þ¤¹¡£ ÆÉ¤ß¼è¤Ã¤¿Ãͤϥ·¥ó¥Ü¥ëThis¤Ç¤¹¡£

---------- Buffer: foo ----------
This is the contents of foo.
---------- Buffer: foo ----------
(setq m (set-marker (make-marker) 1 (get-buffer "foo")))
     ⇒ #<marker at 1 in foo>
(read m)
     ⇒ This
m
     ⇒ #<marker at 5 in foo>   ;; ºÇ½é¤Î¶õÇò¤ÎľÁ°

¤Ä¤®¤Ïʸ»úÎó¤ÎÆâÍÆ¤«¤éÆÉ¤ß¼è¤ê¤Þ¤¹¡£

(read "(When in) the course")
     ⇒ (When in)

°Ê²¼¤ÎÎã¤Ï¡¢¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤«¤éÆÉ¤ß¼è¤ê¤Þ¤¹¡£ ¥×¥í¥ó¥×¥È¤Ï‘Lisp expression: ¤Ç¤¹¡£ ¡Ê¥¹¥È¥ê¡¼¥àt¤«¤éÆÉ¤à¤È¤Ä¤Í¤Ë¤³¤Î¥×¥í¥ó¥×¥È¤¬»È¤ï¤ì¤ë¡£¡Ë ¥æ¡¼¥¶¡¼¤ÎÆþÎϤϥץí¥ó¥×¥È¤Ë³¤±¤Æ¼¨¤·¤Æ¤¢¤ê¤Þ¤¹¡£

(read t)
     ⇒ 23
---------- Buffer: Minibuffer ----------
Lisp expression: 23 RET
---------- Buffer: Minibuffer ----------

ºÇ¸å¤Ï¡¢useless-stream¤È¤¤¤¦Ì¾Á°¤Î´Ø¿ô¤ò¥¹¥È¥ê¡¼¥à¤Ë¤·¤¿Îã¤Ç¤¹¡£ ¤³¤Î¥¹¥È¥ê¡¼¥à¤ò»È¤¦¤Þ¤¨¤Ë¡¢ ÊÑ¿ôuseless-list¤òʸ»ú¤Î¥ê¥¹¥È¤Ç½é´ü²½¤·¤Þ¤¹¡£ ¤½¤¦¤¹¤ë¤È¡¢´Ø¿ôuseless-stream¤ò¸Æ¤Ó½Ð¤¹¤¿¤Ó¤Ë ¥ê¥¹¥ÈÆâ¤Î¤Ä¤®¤Îʸ»ú¤òÊÖ¤¹¤«¡¢ ¥ê¥¹¥È¤ÎÀèÆ¬¤ËÄɲä·¤ÆÊ¸»ú¤òÆÉ¤ßÌᤷ¤Þ¤¹¡£

(setq useless-list (append "XY()" nil))
     ⇒ (88 89 40 41)
(defun useless-stream (&optional unread)
  (if unread
      (setq useless-list (cons unread useless-list))
    (prog1 (car useless-list)
           (setq useless-list (cdr useless-list)))))
     ⇒ useless-stream

¤Ä¤®¤Î¤è¤¦¤Ë¤·¤Æ¥¹¥È¥ê¡¼¥à¤ò»È¤Ã¤ÆÆÉ¤ß¼è¤ê¤Þ¤¹¡£

(read 'useless-stream)
     ⇒ XY
useless-list
     ⇒ (40 41)

¥ê¥¹¥È¤Ë¤Ï³«¤­³ç¸Ì¤ÈÊĤ¸³ç¸Ì¤¬»Ä¤Ã¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ Lisp¥ê¡¼¥À¤¬³«¤­³ç¸Ì¤Ë½Ð²ñ¤¦¤È¤³¤ì¤ÇÆþÎϤò½ª¤¨¤ë¤È·èÄꤷ¡¢ ¤½¤ì¤òÆÉ¤ßÌ᤹¤Î¤Ç¤¹¡£ ¤³¤Î»þÅÀ¤ÇÆÉ¤ß¼è¤ê¤ò»î¤ß¤ë¤È¡¢ ‘()’¤òÆÉ¤ß¼è¤Ã¤Ænil¤òÊÖ¤·¤Þ¤¹¡£

Function: get-file-char

¤³¤Î´Ø¿ô¤Ï¡¢´Ø¿ôload¤Ç³«¤¤¤¿ÆþÎÏ¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß¼è¤ë¤¿¤á¤Î ÆþÎÏ¥¹¥È¥ê¡¼¥à¤È¤·¤ÆÆâÉôŪ¤Ë»È¤ï¤ì¤ë¡£ ÆÉ¼Ô¤Ï¤³¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£


Next: , Previous: Streams Intro, Up: Read and Print   [Contents][Index]