/usr/share/doc/r5rs-doc/r5rs/Input.html is in r5rs-doc 20010328-7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | <html lang="en">
<head>
<title>Input - Revised(5) Scheme</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Revised(5) Scheme">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Input-and-output.html#Input-and-output" title="Input and output">
<link rel="prev" href="Ports.html#Ports" title="Ports">
<link rel="next" href="Output.html#Output" title="Output">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="Input"></a>
<p>
Next: <a rel="next" accesskey="n" href="Output.html#Output">Output</a>,
Previous: <a rel="previous" accesskey="p" href="Ports.html#Ports">Ports</a>,
Up: <a rel="up" accesskey="u" href="Input-and-output.html#Input-and-output">Input and output</a>
<hr>
</div>
<h4 class="subsection">6.6.2 Input</h4>
<p><a name="index-g_t_0040w_007binput_007d-448"></a>
<p class="noindent"> <!-- /@w -->
<!-- ??? -->
<pre class="sp">
</pre>
<div class="defun">
— library procedure: <b>read</b><var><a name="index-read-449"></a></var><br>
— library procedure: <b>read</b><var> port<a name="index-read-450"></a></var><br>
<blockquote>
<p>‘<samp><span class="samp">Read</span></samp>’ converts external representations of Scheme objects into the
objects themselves. That is, it is a parser for the nonterminal
<datum> (see sections see <a href="External-representation.html#External-representation">External representation</a> and
see <a href="Pairs-and-lists.html#Pairs-and-lists">Pairs and lists</a>). ‘<samp><span class="samp">Read</span></samp>’ returns the next
object parsable from the given input <var>port</var>, updating <var>port</var> to point to
the first character past the end of the external representation of the object.
<p>If an end of file is encountered in the input before any
characters are found that can begin an object, then an end of file
object is returned.
The port remains open, and further attempts
to read will also return an end of file object. If an end of file is
encountered after the beginning of an object's external representation,
but the external representation is incomplete and therefore not parsable,
an error is signalled.
<p>The <var>port</var> argument may be omitted, in which case it defaults to the
value returned by ‘<samp><span class="samp">current-input-port</span></samp>’. It is an error to read from
a closed port.
</p></blockquote></div>
<div class="defun">
— procedure: <b>read-char</b><var><a name="index-read_002dchar-451"></a></var><br>
— procedure: <b>read-char</b><var> port<a name="index-read_002dchar-452"></a></var><br>
<blockquote>
<p>Returns the next character available from the input <var>port</var>, updating
the <var>port</var> to point to the following character. If no more characters
are available, an end of file object is returned. <var>Port</var> may be
omitted, in which case it defaults to the value returned by ‘<samp><span class="samp">current-input-port</span></samp>’.
</blockquote></div>
<div class="defun">
— procedure: <b>peek-char</b><var><a name="index-peek_002dchar-453"></a></var><br>
— procedure: <b>peek-char</b><var> port<a name="index-peek_002dchar-454"></a></var><br>
<blockquote>
<p>Returns the next character available from the input <var>port</var>,
<em>without</em> updating
the <var>port</var> to point to the following character. If no more characters
are available, an end of file object is returned. <var>Port</var> may be
omitted, in which case it defaults to the value returned by ‘<samp><span class="samp">current-input-port</span></samp>’.
<blockquote>
<em>Note:</em>
The value returned by a call to ‘<samp><span class="samp">peek-char</span></samp>’ is the same as the
value that would have been returned by a call to ‘<samp><span class="samp">read-char</span></samp>’ with the
same <var>port</var>. The only difference is that the very next call to
‘<samp><span class="samp">read-char</span></samp>’ or ‘<samp><span class="samp">peek-char</span></samp>’ on that <var>port</var> will return the
value returned by the preceding call to ‘<samp><span class="samp">peek-char</span></samp>’. In particular, a call
to ‘<samp><span class="samp">peek-char</span></samp>’ on an interactive port will hang waiting for input
whenever a call to ‘<samp><span class="samp">read-char</span></samp>’ would have hung.
</blockquote>
</blockquote></div>
<div class="defun">
— procedure: <b>eof-object?</b><var> obj<a name="index-eof_002dobject_003f-455"></a></var><br>
<blockquote>
<p>Returns <tt>#t</tt> if <var>obj</var> is an end of file object, otherwise returns
<tt>#f</tt>. The precise set of end of file objects will vary among
implementations, but in any case no end of file object will ever be an object
that can be read in using ‘<samp><span class="samp">read</span></samp>’.
</blockquote></div>
<div class="defun">
— procedure: <b>char-ready?</b><var><a name="index-char_002dready_003f-456"></a></var><br>
— procedure: <b>char-ready?</b><var> port<a name="index-char_002dready_003f-457"></a></var><br>
<blockquote>
<p>Returns <tt>#t</tt> if a character is ready on the input <var>port</var> and
returns <tt>#f</tt> otherwise. If ‘<samp><span class="samp">char-ready</span></samp>’ returns <tt>#t</tt> then
the next ‘<samp><span class="samp">read-char</span></samp>’ operation on the given <var>port</var> is guaranteed
not to hang. If the <var>port</var> is at end of file then ‘<samp><span class="samp">char-ready?</span></samp>’
returns <tt>#t</tt>. <var>Port</var> may be omitted, in which case it defaults to
the value returned by ‘<samp><span class="samp">current-input-port</span></samp>’.
<blockquote>
<em>Rationale:</em>
‘<samp><span class="samp">Char-ready?</span></samp>’ exists to make it possible for a program to
accept characters from interactive ports without getting stuck waiting for
input. Any input editors associated with such ports must ensure that
characters whose existence has been asserted by ‘<samp><span class="samp">char-ready?</span></samp>’ cannot
be rubbed out. If ‘<samp><span class="samp">char-ready?</span></samp>’ were to return <tt>#f</tt> at end of
file, a port at end of file would be indistinguishable from an interactive
port that has no ready characters.
</blockquote>
</blockquote></div>
</body></html>
|