GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Input-Functions.html ・ emacs-doc.conao3.com

20.3 入力関数

本節では、読み込みに関連するLispの関数と変数について説明します。

以下の関数において、stream は入力ストリームを表します(前節を参照)。stream が nil であるか、あるいは省略されている場合は、デフォルトで standard-input の値となります。

読み込み時に終端していないリスト、ベクトル、または文字列が検出された場合、end-of-file エラーが報告されます。

関数: read &optional stream

この関数は、stream から Lisp のテキスト式を 1 つ読み込み、それを Lisp オブジェクトとして返します。これが基本的な Lisp 入力関数です。

関数: read-from-string string &optional start end

この関数は、string 内のテキストから最初のテキスト形式の Lisp 式を読み込みます。CAR にその式を、CDR に文字列内で次に残っている文字(すなわち、まだ読み込まれていない最初の文字)の位置を示す整数を持つ cons セルを返します。

start を指定した場合、文字列のインデックス start から読み取りが開始されます(最初の文字はインデックス 0 にあります)。end を指定した場合、あたかも文字列の残りの部分がないかのように、そのインデックスの直前で読み取りが強制的に停止します。

例えば:

(read-from-string "(setq x 55) (setq y 5)")
     ⇒ ((setq x 55) . 11)
(read-from-string "\"A short string\"")
     ⇒ ("A short string" . 16)

;; Read starting at the first character.
(read-from-string "(list 112)" 0)
     ⇒ ((list 112) . 10)
;; Read starting at the second character.
(read-from-string "(list 112)" 1)
     ⇒ (list . 5)
;; Read starting at the seventh character,
;;   and stopping at the ninth.
(read-from-string "(list 112)" 6 8)
     ⇒ (11 . 8)
関数: read-positioning-symbols &optional stream

この関数は、readと同様にstreamから1つのテキスト式を読み込みますが、さらに、読み込んだシンボルをstream内でそれらが出現した位置に配置します。効率上の理由から、シンボルnilだけは配置されません。位置付きシンボルを参照してください。この関数はバイトコンパイラで使用されます。

変数: standard-input

この変数にはデフォルトの入力ストリーム――stream 引数が nil の場合に read が使用するストリーム――が格納されています。デフォルトは t で、これはミニバッファを使用することを意味します。

変数: read-circle

nil 以外の場合、この変数により循環構造および共有構造の読み取りが可能になります。循環オブジェクトの読み取り構文を参照してください。デフォルト値は t です。

バッチモードでEmacsプロセスの標準入出力ストリームから読み書きを行う際、任意のバイナリデータがそのまま読み書きされること、および/または改行のCR-LFペアへの変換やそこからの変換が行われないことを確実にする必要がある場合があります。この問題はPOSIXホストでは発生せず、MS-WindowsおよびMS-DOSでのみ発生します。以下の関数を使用すると、Emacsプロセスの任意の標準ストリームのI/Oモードを制御できます。

関数: set-binary-mode stream mode

stream をバイナリ I/O モードまたはテキスト I/O モードに切り替えます。mode が nil 以外の場合はバイナリモードに、それ以外の場合はテキストモードに切り替えます。stream の値は、stdin、stdout、または stderr のいずれかとなります。この関数は、副作用として stream の保留中の出力データをフラッシュし、stream の直前の I/O モードの値を返します。POSIX ホストでは、常に nil 以外の値を返し、保留中の出力をフラッシュする以外の処理は行いません。

関数: readablep object

この述語は、object が 読み取り可能な構文 を持つか、すなわち書き出すことができ、かつ Emacs Lisp リーダーで読み戻せるかを判定します。読み戻せない場合、この関数は nil を返し、読み戻せる場合は、object の出力表現(prin1 経由。出力関数 を参照)を返します。