IMPORTANT COVID-19 UPDATES

9780521871723

Programming in Haskell

by
  • ISBN13:

    9780521871723

  • ISBN10:

    0521871727

  • Format: Hardcover
  • Copyright: 2007-02-05
  • Publisher: Cambridge University Press
  • Purchase Benefits
  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $138.00 Save up to $75.60
  • eBook
    $62.40
    Add to Cart

    DURATION
    PRICE

Supplemental Materials

What is included with this book?

Summary

Haskell is one of the leading languages for teaching functional programming, enabling students to write simpler and cleaner code, and to learn how to structure and reason about programs. This introduction is ideal for beginners: it requires no previous programming experience and all concepts are explained from first principles via carefully chosen examples. Each chapter includes exercises that range from the straightforward to extended projects, plus suggestions for further reading on more advanced topics. The author is a leading Haskell researcher and instructor, well-known for his teaching skills. The presentation is clear and simple, and benefits from having been refined and class-tested over several years. The result is a text that can be used with courses, or for self-learning. Features include: freely accessible powerpoint slides for each chapter; solutions to exercises, and examination questions (with solutions) available to instructors; downloadable code that's fully compliant with the latest Haskell release.

Table of Contents

Prefacep. xi
Introductionp. 1
Functionsp. 1
Functional programmingp. 2
Features of Haskellp. 4
Historical backgroundp. 6
A taste of Haskellp. 6
Chapter remarksp. 9
Exercisesp. 9
First stepsp. 10
The Hugs systemp. 10
The standard preludep. 10
Function applicationp. 12
Haskell scriptsp. 13
Chapter remarksp. 16
Exercisesp. 16
Types and classesp. 17
Basic conceptsp. 17
Basic typesp. 18
List typesp. 20
Tuple typesp. 20
Function typesp. 21
Curried functionsp. 21
Polymorphic typesp. 23
Overloaded typesp. 23
Basic classesp. 24
Chapter remarksp. 28
Exercisesp. 28
Defining functionsp. 30
New from oldp. 30
Conditional expressionsp. 31
Guarded equationsp. 31
Pattern matchingp. 32
Lambda expressionsp. 34
Sectionsp. 36
Chapter remarksp. 36
Exercisesp. 37
List comprehensionsp. 38
Generatorsp. 38
Guardsp. 39
The zip functionp. 40
String comprehensionsp. 41
The Caesar cipherp. 42
Chapter remarksp. 46
Exercisesp. 46
Recursive functionsp. 48
Basic conceptsp. 48
Recursion on listsp. 49
Multiple argumentsp. 52
Multiple recursionp. 53
Mutual recursionp. 53
Advice on recursionp. 55
Chapter remarksp. 59
Exercisesp. 59
Higher-order functionsp. 61
Basic conceptsp. 61
Processing listsp. 62
The foldr functionp. 64
The foldl functionp. 66
The composition operatorp. 68
String transmitterp. 69
Chapter remarksp. 72
Exercisesp. 72
Functional parsersp. 74
Parsersp. 74
The parser typep. 75
Basic parsersp. 75
Sequencingp. 76
Choicep. 78
Derived primitivesp. 78
Handling spacingp. 81
Arithmetic expressionsp. 82
Chapter remarksp. 85
Exercisesp. 85
Interactive programsp. 87
Interactionp. 87
The input/output typep. 88
Basic actionsp. 88
Sequencingp. 89
Derived primitivesp. 90
Calculatorp. 91
Game of lifep. 94
Chapter remarksp. 97
Exercisesp. 97
Declaring types and classesp. 99
Type declarationsp. 99
Data declarationsp. 100
Recursive typesp. 102
Tautology checkerp. 105
Abstract machinep. 109
Class and instance declarationsp. 111
Chapter remarksp. 114
Exercisesp. 114
The countdown problemp. 116
Introductionp. 116
Formalising the problemp. 117
Brute force solutionp. 119
Combining generation and evaluationp. 120
Exploiting algebraic propertiesp. 121
Chapter remarksp. 123
Exercisesp. 123
Lazy evaluationp. 124
Introductionp. 124
Evaluation strategiesp. 125
Terminationp. 128
Number of reductionsp. 129
Infinite structuresp. 130
Modular programmingp. 132
Strict applicationp. 134
Chapter remarksp. 137
Exercisesp. 137
Reasoning about programsp. 139
Equational reasoningp. 139
Reasoning about Haskellp. 140
Simple examplesp. 141
Induction on numbersp. 142
Induction on listsp. 145
Making append vanishp. 146
Compiler correctnessp. 150
Chapter remarksp. 154
Exercisesp. 154
Standard preludep. 156
Classesp. 156
Logical valuesp. 157
Characters and stringsp. 158
Numbersp. 159
Tuplesp. 160
Maybep. 160
Listsp. 160
Functionsp. 164
Input/outputp. 164
Symbol tablep. 166
Bibliographyp. 167
Indexp. 169
Table of Contents provided by Ingram. All Rights Reserved.

Rewards Program

Write a Review