]> thyrsus.com Git - mad.git/commitdiff
Added another example.
authorEric S. Raymond <esr@thyrsus,com>
Fri, 20 Feb 2004 07:20:27 +0000 (07:20 +0000)
committerEric S. Raymond <esr@thyrsus,com>
Fri, 20 Feb 2004 07:20:27 +0000 (07:20 +0000)
doc/mad-manual.xml

index e05bc077b6588f9a11c2239384586871267b392e..7e20e64a82ee9edb4cab8d9cb5e0737b16740186 100644 (file)
@@ -12,6 +12,7 @@
 <!ENTITY findroot SYSTEM "../madhouse/findroot.mad">
 <!ENTITY transfunc SYSTEM "../madhouse/transfunc.mad">
 <!ENTITY matrixmult SYSTEM "../madhouse/matrixmult.mad">
+<!ENTITY factfunc SYSTEM "../madhouse/factfunc.mad">
 <!ENTITY scope1 SYSTEM "scope1.xml">
 <!ENTITY scope2 SYSTEM "scope2.xml">
 <!ENTITY scope3 SYSTEM "scope3.xml">
@@ -254,8 +255,8 @@ difficult to imagine code that would.</para>
 <para>Label arrays, array-mode variables, and the associated
 computed-transfer statement are not implemented (mainly because the
 manual did not include programs with which they could be tested).
-Neither are multiple ENTRY points, EQUIVALENCE, TAPE, or DRUM
-statements.</para>
+Neither are multiple ENTRY points, EQUIVALENCE, ERASABLE, COMMON,
+TAPE, or DRUM statements.</para>
 
 <para>Only the no-argument case of ERROR RETURN is supported.  The
 language describing the more general case of this feature is deeply
@@ -2127,6 +2128,9 @@ available for use by successive SAVE statements.</para>
 <!-- beginpage -->
 <sect2><title>Input-Output Statements</title>
 
+<note><para> The Retrocomputing Museum implementation does not
+implement TAPE and DRUM statements.</para></note>
+
 <para>In this section the follwing definition the following
 definitions will hold.  &scriptF; is the location of a format
 specification vector (see <xref linkend='format_specs'/>) which must
@@ -3027,6 +3031,9 @@ by linear-subscript only (i.e., as an element of a vector).  Note that
 occurrence of any elements from any two arrays in the same perentheses
 implies equating the entire arrays accordingly.</para>
 
+<note><para> The Retrocomputing Museum implementation does not
+implement EQUIVALENCE.</para></note>
+
 </sect2>
 <sect2><title>ERASABLE Declaration</title>
 
@@ -3046,6 +3053,10 @@ allowing several arrays to occupy the same storage at different times.
 It should be understood that this storage is accessible to, andmay be
 used by, subroutines.</para>
 
+<note><para>This declaration is a memory-footprint optimization hack.
+The Retrocomputing Museum implementation does not implement
+it.</para></note>
+
 </sect2>
 <sect2><title>3.6  PROGRAM COMMON Declaration</title>
 
@@ -3099,6 +3110,9 @@ program and several external functions, the <emphasis> main program
 must be loaded into the computer first </emphasis> if PROGRAM COMMON
 is used at all.</para>
 
+<note><para> The Retrocomputing Museum implementation does not
+implement COMMON.</para></note>
+
 </sect2>
 <sect2><title>Presetting Vectors</title>
 
@@ -3504,6 +3518,26 @@ there is no general way to implement this in generated C.</para></note>
 </programlisting>
 </sect2>
 <!-- pagebreak; -->
+<sect2><title><emphasis>Problem:</emphasis> Evaluate the recursive function,</title>
+
+<note><para>Due to a reproduction error in the original, the Analysis
+paragraph below is somewhat mangled (the right-hand side sliced
+off). Italicized text in the paragraph is a best guess as to what it
+actually said.</para></note>
+
+<para><emphasis>Analysis:</emphasis> This is the definition of n!
+Alth<emphasis>ough it could have been implemented</emphasis> directly
+using a THROUGH statement, <emphasis>instead the function will
+</emphasis> be evaluated using its recursive def<emphasis>inition to
+illustrate</emphasis> how recursive functions can be
+handl<emphasis>ed.</emphasis></para>
+
+<programlisting>
+&factfunc;
+</programlisting>
+<!-- pagebreak; -->
+
+</sect2>
 </sect1>
 </chapter>
 </book>