サーチ…
前書き
スキームの入力と出力は、通常、ポートを通じて処理されます。ポートはScheme外の世界と対話するために使用されるデータ構造です。ポートはファイルに限定されず、ソケットへの読み書きにも使用できます。いくつかの点で、ポートオブジェクトは、ファイルやソケットを操作するだけでなく、OSでのあらゆる種類の読み取り/書き込み操作を行うことができるユニバーサルオブジェクトです。例えば、プリンタに書き込むことも、ポートを使用してSchemeからCNCマシンを制御することもできるポートを実装することができます。
入力ポートを作成する
入力ポートはさまざまな方法で作成できますが、通常はopen-input-始まります。
文字列ポート
open-input-stringを使用して、文字列をポートとして使用できopen-input-string 。それは、文字列から読み取ることができるポートを作成します。
(define p
(open-input-string "(a . (b . (c . ()))) 34"))
ファイルポート
open-input-file使ってファイルを開いて読むことができopen-input-file 。
(define p
(open-input-file "path/to/file"))
入力ポートからの読み取り
入力ポートからの読み込みは、さまざまな方法で行うことができます。 REPLで使用されるreadメソッドを使用できます。スペースで区切られた式を読み取り、解釈します。
上の文字列ポートから例をとります。我々はこのようにポートから読むことができます:
(define p
(open-input-string "(a . (b . (c . ()))) 34"))
(read p) -> (a b c)
(read p) -> 34
特別なメソッドread-charを使用して、ポートからcharとして読み込むことができます。これは、読んでいるポートから単一の文字を返します。
(define p (open-input-string "hello"))
(read-char p) -> #\h
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow