⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 r5rs-z-h-10.html

📁 scheme 标准(r5rs)。Scheme是MIT发布的基于Lambda运算的语言
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<p><div align=left><img src="r5rs-Z-G-30.gif" border="0"></div><p><p><a name="%_sec_7.2.4"></a><h3><a href="r5rs-Z-H-2.html#%_toc_%_sec_7.2.4">7.2.4&nbsp;&nbsp;Auxiliary functions</a></h3><p><p><p><div align=left><img src="r5rs-Z-G-31.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-32.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-33.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-34.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-35.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-36.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-37.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-38.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-39.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-40.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-41.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-42.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-43.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-44.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-45.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-46.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-47.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-48.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-49.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-50.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-51.gif" border="0"></div><p><p><a name="%_idx_638"></a><p><div align=left><img src="r5rs-Z-G-52.gif" border="0"></div><p><p><a name="%_idx_640"></a><p><div align=left><img src="r5rs-Z-G-53.gif" border="0"></div><p><p><a name="%_idx_642"></a><p><div align=left><img src="r5rs-Z-G-54.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-55.gif" border="0"></div><p><p><a name="%_idx_644"></a><p><div align=left><img src="r5rs-Z-G-56.gif" border="0"></div><p><p><a name="%_idx_646"></a><p><div align=left><img src="r5rs-Z-G-57.gif" border="0"></div><p><p><a name="%_idx_648"></a><p><div align=left><img src="r5rs-Z-G-58.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-59.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-60.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-61.gif" border="0"></div><p><p><p><div align=left><img src="r5rs-Z-G-62.gif" border="0"></div><p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<p><a name="%_sec_7.3"></a><h2><a href="r5rs-Z-H-2.html#%_toc_%_sec_7.3">7.3&nbsp;&nbsp;Derived expression types</a></h2><p><p>This section gives macro definitions for the derived expression types interms of the primitive expression types (literal, variable, call, <tt>lambda</tt>,<tt>if</tt>, <tt>set!</tt>).  See section&nbsp;<a href="r5rs-Z-H-9.html#%_sec_6.4">6.4</a> for a possibledefinition of <tt>delay</tt>.<p><tt><p>(define-syntax&nbsp;<tt>cond</tt><br>&nbsp;&nbsp;(syntax-rules&nbsp;(else&nbsp;=&gt;)<br>&nbsp;&nbsp;&nbsp;&nbsp;((cond&nbsp;(else&nbsp;result1&nbsp;result2&nbsp;...))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(begin&nbsp;result1&nbsp;result2&nbsp;...))<br>&nbsp;&nbsp;&nbsp;&nbsp;((cond&nbsp;(test&nbsp;=&gt;&nbsp;result))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;((temp&nbsp;test))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;temp&nbsp;(result&nbsp;temp))))<br>&nbsp;&nbsp;&nbsp;&nbsp;((cond&nbsp;(test&nbsp;=&gt;&nbsp;result)&nbsp;clause1&nbsp;clause2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;((temp&nbsp;test))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;temp<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(result&nbsp;temp)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cond&nbsp;clause1&nbsp;clause2&nbsp;...))))<br>&nbsp;&nbsp;&nbsp;&nbsp;((cond&nbsp;(test))&nbsp;test)<br>&nbsp;&nbsp;&nbsp;&nbsp;((cond&nbsp;(test)&nbsp;clause1&nbsp;clause2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;((temp&nbsp;test))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;temp<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cond&nbsp;clause1&nbsp;clause2&nbsp;...))))<br>&nbsp;&nbsp;&nbsp;&nbsp;((cond&nbsp;(test&nbsp;result1&nbsp;result2&nbsp;...))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;test&nbsp;(begin&nbsp;result1&nbsp;result2&nbsp;...)))<br>&nbsp;&nbsp;&nbsp;&nbsp;((cond&nbsp;(test&nbsp;result1&nbsp;result2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clause1&nbsp;clause2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;test<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(begin&nbsp;result1&nbsp;result2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cond&nbsp;clause1&nbsp;clause2&nbsp;...)))))<br><p></tt><p><tt><p>(define-syntax&nbsp;<tt>case</tt><br>&nbsp;&nbsp;(syntax-rules&nbsp;(else)<br>&nbsp;&nbsp;&nbsp;&nbsp;((case&nbsp;(key&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clauses&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;((atom-key&nbsp;(key&nbsp;...)))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(case&nbsp;atom-key&nbsp;clauses&nbsp;...)))<br>&nbsp;&nbsp;&nbsp;&nbsp;((case&nbsp;key<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(else&nbsp;result1&nbsp;result2&nbsp;...))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(begin&nbsp;result1&nbsp;result2&nbsp;...))<br>&nbsp;&nbsp;&nbsp;&nbsp;((case&nbsp;key<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((atoms&nbsp;...)&nbsp;result1&nbsp;result2&nbsp;...))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(memv&nbsp;key&nbsp;'(atoms&nbsp;...))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(begin&nbsp;result1&nbsp;result2&nbsp;...)))<br>&nbsp;&nbsp;&nbsp;&nbsp;((case&nbsp;key<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((atoms&nbsp;...)&nbsp;result1&nbsp;result2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clause&nbsp;clauses&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(memv&nbsp;key&nbsp;'(atoms&nbsp;...))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(begin&nbsp;result1&nbsp;result2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(case&nbsp;key&nbsp;clause&nbsp;clauses&nbsp;...)))))<br><p></tt><p><tt><p>(define-syntax&nbsp;<tt>and</tt><br>&nbsp;&nbsp;(syntax-rules&nbsp;()<br>&nbsp;&nbsp;&nbsp;&nbsp;((and)&nbsp;<tt>#t</tt>)<br>&nbsp;&nbsp;&nbsp;&nbsp;((and&nbsp;test)&nbsp;test)<br>&nbsp;&nbsp;&nbsp;&nbsp;((and&nbsp;test1&nbsp;test2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;test1&nbsp;(and&nbsp;test2&nbsp;...)&nbsp;<tt>#f</tt>))))<br><p></tt><p><tt><p>(define-syntax&nbsp;<tt>or</tt><br>&nbsp;&nbsp;(syntax-rules&nbsp;()<br>&nbsp;&nbsp;&nbsp;&nbsp;((or)&nbsp;<tt>#f</tt>)<br>&nbsp;&nbsp;&nbsp;&nbsp;((or&nbsp;test)&nbsp;test)<br>&nbsp;&nbsp;&nbsp;&nbsp;((or&nbsp;test1&nbsp;test2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;((x&nbsp;test1))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;x&nbsp;x&nbsp;(or&nbsp;test2&nbsp;...))))))<br><p></tt><p><tt><p>(define-syntax&nbsp;<tt>let</tt><br>&nbsp;&nbsp;(syntax-rules&nbsp;()<br>&nbsp;&nbsp;&nbsp;&nbsp;((let&nbsp;((name&nbsp;val)&nbsp;...)&nbsp;body1&nbsp;body2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((lambda&nbsp;(name&nbsp;...)&nbsp;body1&nbsp;body2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val&nbsp;...))<br>&nbsp;&nbsp;&nbsp;&nbsp;((let&nbsp;tag&nbsp;((name&nbsp;val)&nbsp;...)&nbsp;body1&nbsp;body2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((letrec&nbsp;((tag&nbsp;(lambda&nbsp;(name&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body1&nbsp;body2&nbsp;...)))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tag)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val&nbsp;...))))<br><p></tt><p><tt><p>(define-syntax&nbsp;<tt>let*</tt><br>&nbsp;&nbsp;(syntax-rules&nbsp;()<br>&nbsp;&nbsp;&nbsp;&nbsp;((let*&nbsp;()&nbsp;body1&nbsp;body2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;()&nbsp;body1&nbsp;body2&nbsp;...))<br>&nbsp;&nbsp;&nbsp;&nbsp;((let*&nbsp;((name1&nbsp;val1)&nbsp;(name2&nbsp;val2)&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body1&nbsp;body2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;((name1&nbsp;val1))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let*&nbsp;((name2&nbsp;val2)&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body1&nbsp;body2&nbsp;...)))))<br><p></tt><p>The following <tt>letrec</tt> macro uses the symbol <tt>&lt;undefined&gt;</tt>in place of an expression which returns something that when stored ina location makes it an error to try to obtain the value stored in thelocation (no such expression is defined in Scheme).A trick is used to generate the temporary names needed to avoidspecifying the order in which the values are evaluated.This could also be accomplished by using an auxiliary macro.<p><tt><p>(define-syntax&nbsp;<tt>letrec</tt><br>&nbsp;&nbsp;(syntax-rules&nbsp;()<br>&nbsp;&nbsp;&nbsp;&nbsp;((letrec&nbsp;((var1&nbsp;init1)&nbsp;...)&nbsp;body&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(letrec&nbsp;&quot;generate_temp_names&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(var1&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((var1&nbsp;init1)&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body&nbsp;...))<br>&nbsp;&nbsp;&nbsp;&nbsp;((letrec&nbsp;&quot;generate_temp_names&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(temp1&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((var1&nbsp;init1)&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;((var1&nbsp;&lt;undefined&gt;)&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;((temp1&nbsp;init1)&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(set!&nbsp;var1&nbsp;temp1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body&nbsp;...)))<br>&nbsp;&nbsp;&nbsp;&nbsp;((letrec&nbsp;&quot;generate_temp_names&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(x&nbsp;y&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(temp&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((var1&nbsp;init1)&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(letrec&nbsp;&quot;generate_temp_names&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(y&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(newtemp&nbsp;temp&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((var1&nbsp;init1)&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body&nbsp;...))))<br><p></tt><p><tt><p>(define-syntax&nbsp;<tt>begin</tt><br>&nbsp;&nbsp;(syntax-rules&nbsp;()<br>&nbsp;&nbsp;&nbsp;&nbsp;((begin&nbsp;exp&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((lambda&nbsp;()&nbsp;exp&nbsp;...)))))<br><p></tt><p>The following alternative expansion for <tt>begin</tt> does not make use ofthe ability to write more than one expression in the body of a lambdaexpression.  In any case, note that these rules apply only if the bodyof the <tt>begin</tt> contains no definitions.<p><tt><p>(define-syntax&nbsp;begin<br>&nbsp;&nbsp;(syntax-rules&nbsp;()<br>&nbsp;&nbsp;&nbsp;&nbsp;((begin&nbsp;exp)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exp)<br>&nbsp;&nbsp;&nbsp;&nbsp;((begin&nbsp;exp1&nbsp;exp2&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;((x&nbsp;exp1))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(begin&nbsp;exp2&nbsp;...)))))<br><p></tt><p>The following definitionof <tt>do</tt> uses a trick to expand the variable clauses.As with <tt>letrec</tt> above, an auxiliary macro would also work.The expression <tt>(if #f #f)</tt> is used to obtain an unspecificvalue.<p><tt><p>(define-syntax&nbsp;<tt>do</tt><br>&nbsp;&nbsp;(syntax-rules&nbsp;()<br>&nbsp;&nbsp;&nbsp;&nbsp;((do&nbsp;((var&nbsp;init&nbsp;step&nbsp;...)&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(test&nbsp;expr&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(letrec<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((loop<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(lambda&nbsp;(var&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;test<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;#f&nbsp;#f)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expr&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(loop&nbsp;(do&nbsp;&quot;step&quot;&nbsp;var&nbsp;step&nbsp;...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...))))))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(loop&nbsp;init&nbsp;...)))<br>&nbsp;&nbsp;&nbsp;&nbsp;((do&nbsp;&quot;step&quot;&nbsp;x)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x)<br>&nbsp;&nbsp;&nbsp;&nbsp;((do&nbsp;&quot;step&quot;&nbsp;x&nbsp;y)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y)))<br><p></tt><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-9.html">previous</a></span><span>, <a href="r5rs-Z-H-11.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>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -