Commit fcf6ab7b authored by Simon Marlow's avatar Simon Marlow
Browse files

fix definition of fib in example code

parent 8c254946
......@@ -136,7 +136,7 @@ import Control.Parallel
nfib :: Int -> Int
nfib n | n <= 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>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment