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