Used
Paperback
1996
$3.36
Named in honor of Haskell Curry, whose work has had a profound influence on functional programming, the Haskell language is growing rapidly in popularity - especially as a vehicle to teach introductory programming concepts. This book introduces Haskell at a level appropriate for those with little or no prior experience of functional programming. The emphasis throughout is on crafting programs, solving problems and avoiding common pitfalls. In three parts the book *first builds a foundation, focusing on programming basic types and lists, using first-order, non-polymorphic programs *then looks at the three ideas of higher-order functions, polymorphism and type classes, which together give modern functional programming its distinctive flavour and power *finally discusses larger-scale programming, supported by an exploration of user-defined types, modules, lazy evaluation and IO programming using monads.Key Features *An analysis of program behavior and efficiency *A strong emphasis on software engineering and problem-solving techniques *An optional thread on proving that programs have the properties required of them which runs through the text *Software modification and re-use are emphasised in the discussion of design issues *Design advice is supplemented with examples and case studies of varying size and complexity *Appendices contain support material of various kinds - pointers to sites from which implementations of Haskell and Gofer can be obtained; common error messages; a glossary of programming terms; functions from parts of the Haskell standard preludes *Over 400 exercises of varying difficulty Haskell systems *The text is designed to be used with any Haskell implementation, such as Hugs (Haskell Users Gofer System) whose interface and error messages are described in some detail. Note that the Hugs system described is Hugs 1.01; the June 1996 Yale release of the system is similar, but implements the full Haskell module system rather than projects as stated in the text; full details of the small number of differences are given in the code files.*The material takes account of the latest revision to the language definition, Haskell 1.3 *The text can also be used with the Gofer system. 0201403579B04062001