An edition of Programming in Haskell (2007)

Programming in Haskell

  • 4.0 (1 rating)
  • 10 Want to read
  • 1 Currently reading
  • 1 Have read

My Reading Lists:

Create a new list

  • 4.0 (1 rating)
  • 10 Want to read
  • 1 Currently reading
  • 1 Have read


Download Options

Buy this book

Last edited by Drini
September 15, 2025 | History
An edition of Programming in Haskell (2007)

Programming in Haskell

  • 4.0 (1 rating)
  • 10 Want to read
  • 1 Currently reading
  • 1 Have read

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, and a downloadable code that's fully compliant with the latest Haskell release.

Publish Date
Language
English
Pages
184

Buy this book

Previews available in: English

Edition Availability
Cover of: Programming in Haskell
Programming in Haskell
January 15, 2007, Cambridge University Press
Hardcover in English
Cover of: Programming in Haskell
Programming in Haskell
January 15, 2007, Cambridge University Press
Paperback in English
Cover of: Programming in Haskell
Programming in Haskell
2007, Cambridge University Press
E-book in English

Add another edition?

Book Details


Table of Contents

Preface
Page xi
Chapter 1. Introduction
Page 1
1.1. Functions
Page 1
1.2. Functional programming
Page 2
1.3. Features of Haskell
Page 4
1.4. Historical background
Page 6
1.5. A taste of Haskell
Page 6
1.6. Chapter remarks
Page 9
1.7. Exercises
Page 9
Chapter 2. First steps
Page 10
2.1. The Hugs system
Page 10
2.2. The standard prelude
Page 10
2.3. Function application
Page 12
2.4. Haskell scripts
Page 13
2.5. Chapter remarks
Page 16
2.6. Exercises
Page 16
Chapter 3. Types and classes
Page 17
3.1. Basic concepts
Page 17
3.2. Basic types
Page 18
3.3. List types
Page 20
3.4. Tuple types
Page 20
3.5. Function types
Page 21
3.6. Curried functions
Page 21
3.7. Polymorphic types
Page 23
3.8. Overloaded types
Page 23
3.9. Basic classes
Page 24
3.10. Chapter remarks
Page 28
3.11. Exercises
Page 28
Chapter 4. Defining functions
Page 30
4.1. New from old
Page 30
4.2. Conditional expressions
Page 31
4.3. Guarded equations
Page 31
4.4. Pattern matching
Page 32
4.5. Lambda expressions
Page 34
4.6. Sections
Page 36
4.7. Chapter remarks
Page 36
4.8. Exercises
Page 37
Chapter 5. List comprehensions
Page 38
5.1. Generators
Page 38
5.2. Guards
Page 39
5.3. The zip function
Page 40
5.4. String comprehensions
Page 41
5.5. The Caesar cipher
Page 42
5.6. Chapter remarks
Page 46
5.7. Exercises
Page 46
Chapter 6. Recursive functions
Page 48
6.1. Basic concepts
Page 48
6.2. Recursion on lists
Page 49
6.3. Multiple arguments
Page 52
6.4. Multiple recursion
Page 53
6.5. Mutual recursion
Page 53
6.6. Advice on recursion
Page 55
6.7. Chapter remarks
Page 59
6.8. Exercises
Page 59
Chapter 7. Higher-order functions
Page 61
7.1. Basic concepts
Page 61
7.2. Processing lists
Page 62
7.3. The foldr function
Page 64
7.4. The foldl function
Page 66
7.5. The composition operator
Page 68
7.6. String transmitter
Page 69
7.7. Chapter remarks
Page 72
7.8. Exercises
Page 72
Chapter 8. Functional parsers
Page 74
8.1. Parsers
Page 74
8.2. The parser type
Page 75
8.3. Basic parsers
Page 75
8.4. Sequencing
Page 76
8.5. Choice
Page 78
8.6. Derived primitives
Page 78
8.7. Handling spacing
Page 81
8.8. Arithmetic expressions
Page 82
8.9. Chapter remarks
Page 85
8.10. Exercises
Page 85
Chapter 9. Interactive programs
Page 87
9.1. Interaction
Page 87
9.2. The input/output type
Page 88
9.3. Basic actions
Page 88
9.4. Sequencing
Page 89
9.5. Derived primitives
Page 90
9.6. Calculator
Page 91
9.7. Game of life
Page 94
9.8. Chapter remarks
Page 97
9.9. Exercises
Page 97
Chapter 10. Declaring types and classes
Page 99
10.1. Type declarations
Page 99
10.2. Data declarations
Page 100
10.3. Recursive types
Page 102
10.4. Tautology checker
Page 105
10.5. Abstract machine
Page 109
10.6. Class and instance declarations
Page 111
10.7. Chapter remarks
Page 114
10.8. Exercises
Page 114
Chapter 11. The countdown problem
Page 116
11.1. Introduction
Page 116
11.2. Formalising the problem
Page 117
11.3. Brute force solution
Page 119
11.4. Combining generation and evaluation
Page 120
11.5. Exploiting algebraic properties
Page 121
11.6. Chapter remarks
Page 123
11.7. Exercises
Page 123
Chapter 12. Lazy evaluation
Page 124
12.1. Introduction
Page 124
12.2. Evaluation strategies
Page 125
12.3. Termination
Page 128
12.4. Number of reductions
Page 129
12.5. Infinite structures
Page 130
12.6. Modular programming
Page 132
12.7. Strict application
Page 134
12.8. Chapter remarks
Page 137
12.9. Exercises
Page 137
Chapter 13. Reasoning about programs
Page 139
13.1. Equational reasoning
Page 139
13.2. Reasoning about Haskell
Page 140
13.3. Simple examples
Page 141
13.4. Induction on numbers
Page 142
13.5. Induction on lists
Page 145
13.6. Making append vanish
Page 146
13.7. Compiler correctness
Page 150
13.8. Chapter remarks
Page 154
13.9. Exercises
Page 154
Appendix A. Standard prelude
Page 156
A.1. Classes
Page 156
A.2. Logical values
Page 157
A.3. Characters and strings
Page 158
A.4. Numbers
Page 159
A.5. Tuples
Page 160
A.6. Maybe
Page 160
A.7. Lists
Page 160
A.8. Functions
Page 164
A.9. Input/output
Page 164
Appendix B. Symbol table
Page 166
Bibliography
Page 167
Index
Page 169

Classifications

Library of Congress
QA76.62 .H88 2007, QA76.73

The Physical Object

Format
Paperback
Number of pages
184
Dimensions
9.8 x 7.7 x 1.1 inches
Weight
12 ounces

Edition Identifiers

Open Library
OL7752234M
Internet Archive
programminghaske00hutt
ISBN 10
0521692695
ISBN 13
9780521692694
LCCN
2007274987
LibraryThing
2473229
Goodreads
912217

Work Identifiers

Work ID
OL1223918W

Community Reviews (0)

No community reviews have been submitted for this work.

Lists

History

Download catalog record: RDF / JSON / OPDS | Wikipedia citation
September 15, 2025 Edited by Drini Add TOC from Tocky
December 19, 2023 Edited by ImportBot import existing book
October 4, 2021 Edited by ImportBot import existing book
December 17, 2020 Edited by MARC Bot import existing book
April 29, 2008 Created by an anonymous user Imported from amazon.com record