Corrigenda and Addenda to "An Introduction to Functional Programming Systems using Haskell" by A.J.T. Davie, CUP 1992 p20 2.7 2nd group of examples 'x >= y where x=3 y=3?' => 'let x = 3 y = 3 in x >= y' p22 2.7.2 l3 Delete 'using' p26 2.9 result of 1st example '-3' => -3.0000000000000000' p28 2.10 replace the tuple/pattern matching example at the top of the page by >let sum (a,b) = (a+b) >in sum(7 `divRem` 3)? 3 what next? In fact `divRem` becomes `divMod` in Haskell 1.2 p 30 2.13 P3l1 insert 'of' after 'evaluation' p31 2.14.2 P3l3 Delete 'addition' p33 2.16 Ex 3c An extra base is needed. (m n)=1 for n=m p34 2.16 Ex 4 Should be numbered 5 p34 2.16 Ex 5 Should be numbered 6 p44 3.7 P5l4 'chosing' => 'choosing' p45 3.8 quot example quot' (x-j) => quot' (x-j) + 1 p46 3.9 l15 (2nd equation of union) 'union s t' => 'union s tt' p47 3.9 l5 -- [1.2.3] => -- [1,2,3] p47 3.9 P-1l7 'one return at' => 'at' p52 3.10.3 (h `infix` id) => (id `infix` h) p52 3.11 P1l6 'now more often known now' => 'more often known now' p57 Ex 15 l2 'represent' => 'represents' p60 4.2 P10l1 'Haskell type operator in Haskell' => 'type operator in Haskell' p61 4.3 P5l4 '->' has got split over two lines p63 last line of p. '\=' => '/=' p67 4.5 l1 sentence should read 'Modules may import some or all of the facilities exported from other modules' p67 4.6 ex. l2 '3 := 5' => '3 :=5, ' p68 4.6 last examples should be: -- slices of a matrix row i m = array b' [j := m!(i,j) | j <- range b'] where ((l,l'),(u,u')) = bounds m b' = (l',u') col j m = array b [i := m!(i,j) | i <- range b] where ((l,l'),(u,u')) = bounds m b = (l,u) p72 4.8 P3l5 "types in Eq" => "types in Ord" p72 4.8 P7l7 delete 'operators' p85 5.6 l16-18 The = signs of the three equations should be lined up p85 5.6 l18 '\=' => '/=' p86 5.6 In the last displayed equation on the page 'lambda z . ( z y )' => 'lambda z . ( z x )' p87 5.6 In the two definitions of 'subst x f e', '(frees e `contains` x)' => '(x `elem` frees e)' and (frees f `contains` var)' => '(var `elem` frees f)' p87 5.6 In the two 'otherwise' guards of the definitions of 'subst x f e', '(subst var z body)' => '(subst var (Var z) body)' p89 after 4) 'means is' => 'means' p90 5.8 P4l3 'bar' => 'except for' p95 5.9 l22 "seem" => "seems" p99 5.10.4 P-3 'a andb' => 'a and b' p100 5.10.4 l25 "equation" => "equation (2)" odd pages 111-129 'CHAPTER 5' => 'CHAPTER 6' p113 6.3 l -11 "when it is:" => "when it is." p114 last line 'application' => 'combination' pp113-123 For correct Haskell S,E,C and D should be changed to s,e,c and d when they appear in the 'do' function p118 8th last line 'Instr' => 'data Instr' p119 just before 5. 'Instr' => 'data Instr' p123 6.5 P4 'w ask' => 'we ask' p123 6.5 P-2 "be flattened.)" => "be flattened)." p123 6.6 P1l7 "left on the stack)." => "left on the stack.)" p124 6.6 l8 "explain The" => "explain. The" p132 7.1 l6 remove "forms }" p134 7.2 l15-16 "by placing the optional increment" => "by specifying the second element" p135 7.2 P3 interchange "domain" and "range" twice p139 footnote example needs final ")" p140 7.4.1 P4 "[(0,0),(1,0),(2,0),...]" => "[(0,0),(0,1),(0,2),...]" p140 7.4.1 P4 "before we reached (0,1)" => "before we reached (1,0)" p143 7.5 l26 "input/outut" => "input/output" p143 7.5 l27 ")." => ".)" p145 7.7 various bullets lack final period p177 9.2 l6 '=' => '=' (in a smaller font) p178 9.4 l4 'applicable to any algebraic data type' => 'applicable to the finite sized elements of any algebraic data type' p178 9.4 P2l3 'of of' => 'of' p178 Thm. 9.4 'For all trees' => 'For all finite trees' p182 9.7 l9 'rather that' => 'rather than' p183 9.7 l2 'be be' => 'be' p184 9.7 ll5-8 'then1' => 'then 1' p186 9.9 l5 'm*(f n) [_ g(m,n)' => 'g(m,n) [_ m*(f n)' p186 9.9 l -6 'm*(f n) [_ g(m,n)' => 'g(m,n) [_ m*(f n)' p187 Ex. 2 l 1 'Show that' => 'Show that, for finite lists x,' p187 Ex. 2 l 3 '??' => 'Appendix B (p. 249)' p191 10.2 P11l1 'compete' => 'complete' p191 10.2 last ex. '||' => '--' (3 times) p195 10.4 exs. '||' => '--' (5 times) p203 11.3 P7l1 '(using EVAL' => '(using EVAL)' p204 11.5 P1l9 '(see section 11.5)' => '(see section 11.7.6)' p204 11.5 P2l1 'desirable' => 'a desirable' p206 11.7 P2l1 'payed' => 'paid' p208 11.7.3 P2l-1 '11.1' => '11.2 .' p210 Fig. 11.4 Topmost arrow should be lowered a bit. p211 11.7.6 P2l6 'chose' => 'choose' p221 Bibliogrpahy Add reference: osth91 Ostheimer, G. Parallel Functional Computation on STAR:DUST Proc. 3rd International Workshop on the Parallel Implementation of Functional Languages, Southampton, 1991 & Research Report CS/92/2, Department of Computational Science, University of St. Andrews, 1992 p275 index col 2 add an entry for '\' at p80 p213+ Bibliography is not correctly alphabetical. ansi78, arvi80 and curr58 need attention. Any other errors found will be gratefully received.