schemers-website/www/Documents/Standards/R5RS/HTML/r5rs-Z-H-11.html

86 lines
3.3 KiB
HTML
Raw Normal View History

<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<!-- Generated from TeX source by tex2page, v 4o4,
(c) Dorai Sitaram, http://www.cs.rice.edu/~dorai/tex2page -->
<head>
<title>
Revised^5 Report on the Algorithmic Language Scheme
</title>
<link rel="stylesheet" type="text/css" href="r5rs-Z-C.css" title=default>
<meta name=robots content="noindex,follow">
</head>
<body>
<p><div class=navigation>[Go to <span><a href="r5rs.html">first</a>, <a href="r5rs-Z-H-10.html">previous</a></span><span>, <a href="r5rs-Z-H-12.html">next</a></span> page<span>; &nbsp;&nbsp;</span><span><a href="r5rs-Z-H-2.html#%_toc_start">contents</a></span><span><span>; &nbsp;&nbsp;</span><a href="r5rs-Z-H-15.html#%_index_start">index</a></span>]</div><p>
<a name="%_chap_Temp_6"></a>
<h1 class=chapter>
<div class=chapterheading>&nbsp;</div><p>
<a href="r5rs-Z-H-2.html#%_toc_%_chap_Temp_6">Notes</a></h1><p>
<p><p><p>
<p>
<a name="%_sec_Temp_7"></a>
<h3><a href="r5rs-Z-H-2.html#%_toc_%_sec_Temp_7">Language changes</a></h3><p>
<p>
This section enumerates the changes that have been made to Scheme since
the ``Revised<sup>4</sup> report''&nbsp;[<a href="r5rs-Z-H-14.html#%_sec_7.3">6</a>] was published.<p>
<p><ul><p>
<li>The report is now a superset of the IEEE standard for Scheme
[<a href="r5rs-Z-H-14.html#%_sec_7.3">13</a>]: implementations that conform to the report will
also conform to the standard. This required the following changes:
<p><ul><p>
<li>The empty list is now required to count as true.<p>
<li>The classification of features as essential or inessential has been
removed. There are now three classes of built-in procedures: primitive,
library, and optional. The optional procedures are <tt>load</tt>,
<tt>with-input-from-file</tt>, <tt>with-output-to-file</tt>,
<tt>transcript-on</tt>, <tt>transcript-off</tt>, and
<tt>interaction-environment</tt>,
and <tt>-</tt> and <tt>/</tt> with more than two arguments.
None of these are in the IEEE standard.<p>
<li>Programs are allowed to redefine built-in procedures. Doing so
will not change the behavior of other built-in procedures.
</ul><p><p>
<li><em>Port</em> has been added to the list of disjoint types.<p>
<li>The macro appendix has been removed. High-level macros are now part
of the main body of the report. The rewrite rules for derived expressions
have been replaced with macro definitions. There are no reserved identifiers.<p>
<li><tt>Syntax-rules</tt> now allows vector patterns.<p>
<li>Multiple-value returns, <tt>eval</tt>, and <tt>dynamic-wind</tt> have
been added.<p>
<li>The calls that are required to be implemented in a properly tail-recursive
fashion are defined explicitly.<p>
<li>`<tt>@</tt>' can be used within identifiers. `<tt><code class=verbatim>|</code></tt>' is reserved
for possible future extensions.<p>
</ul><p><p>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<p>
<p><div class=navigation>[Go to <span><a href="r5rs.html">first</a>, <a href="r5rs-Z-H-10.html">previous</a></span><span>, <a href="r5rs-Z-H-12.html">next</a></span> page<span>; &nbsp;&nbsp;</span><span><a href="r5rs-Z-H-2.html#%_toc_start">contents</a></span><span><span>; &nbsp;&nbsp;</span><a href="r5rs-Z-H-15.html#%_index_start">index</a></span>]</div><p>
</body>
</html>