fix definition of fib in example code
[ghc-hetmet.git] / docs / users_guide / parallel.xml
index fc7ca94..7792ea6 100644 (file)
@@ -38,7 +38,7 @@
   </para><para>
   To the programmer, Concurrent Haskell introduces no new language constructs;
   rather, it appears simply as a library, <ulink
-  url="http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Concurrent.html">
+  url="../libraries/base/Control-Concurrent.html">
              Control.Concurrent</ulink>.  The functions exported by this
              library include:
   <itemizedlist>
@@ -62,7 +62,7 @@ the FFI with concurrency</ulink>.</para></listitem>
     it.</para>
 
    <para>The main library you need to use STM is <ulink
-  url="http://www.haskell.org/ghc/docs/latest/html/libraries/stm/Control-Concurrent-STM.html">
+  url="../libraries/stm/Control-Concurrent-STM.html">
              Control.Concurrent.STM</ulink>. The main features supported are these:
 <itemizedlist>
 <listitem><para>Atomic blocks.</para></listitem>
@@ -136,7 +136,7 @@ import Control.Parallel
 
 nfib :: Int -&#62; Int
 nfib n | n &#60;= 1 = 1
-       | otherwise = par n1 (seq n2 (n1 + n2 + 1))
+       | otherwise = par n1 (seq n2 (n1 + n2))
                      where n1 = nfib (n-1)
                            n2 = nfib (n-2)</programlisting>
 
@@ -149,8 +149,8 @@ nfib n | n &#60;= 1 = 1
       (leaving the parent to evaluate the other branch).  Also, we must use
       <function>seq</function> to ensure that the parent will evaluate
       <varname>n2</varname> <emphasis>before</emphasis> <varname>n1</varname>
-      in the expression <literal>(n1 + n2 + 1)</literal>.  It is not sufficient
-      to reorder the expression as <literal>(n2 + n1 + 1)</literal>, because
+      in the expression <literal>(n1 + n2)</literal>.  It is not sufficient
+      to reorder the expression as <literal>(n2 + n1)</literal>, because
       the compiler may not generate code to evaluate the addends from left to
       right.</para>