კატალოგი

Record Details

ძიება კატალოგში



Programming in Haskell (1st Edition) Cover Image Book Book

Programming in Haskell (1st Edition)

Professor Graham Hutton; (ავტორი).

დამატებითი ინფორმაცია

  • ISBN: 9780521692694
  • ფიზიკური აღწერილობა: 184 p.
  • გამომცემლობა: UK Cambridge University Press 2007

ხელმისაწვდომი ასლები

  • 1 of 1 copy available at შზსუ-ს ბიბლიოთეკები.

დაჯავშნა

  • 0 current holds with 1 total copy.
Show Only Available Copies
მდებარეობა ინვენტარის ნომერი / ასლის შენიშვნები შტრიხკოდი თაროზე განთავსების ადგილი სტატუსი დასაბრუნებელია
მთავარი ბიბლიოთეკა IBSU 005.133 H-95 064 IBSU024103064 Stacks Available -

Prefacexi
Chapter 1. Introduction1
1.1. Functions1
1.2. Functional programming2
1.3. Features of Haskell4
1.4. Historical background6
1.5. A taste of Haskell6
1.6. Chapter remarks9
1.7. Exercises9
Chapter 2. First steps10
2.1. The Hugs system10
2.2. The standard prelude10
2.3. Function application12
2.4. Haskell scripts13
2.5. Chapter remarks16
2.6. Exercises16
Chapter 3. Types and classes17
3.1. Basic concepts17
3.2. Basic types18
3.3. List types20
3.4. Tuple types20
3.5. Function types21
3.6. Curried functions21
3.7. Polymorphic types23
3.8. Overloaded types23
3.9. Basic classes24
3.10. Chapter remarks28
3.11. Exercises28
Chapter 4. Defining functions30
4.1. New from old30
4.2. Conditional expressions31
4.3. Guarded equations31
4.4. Pattern matching32
4.5. Lambda expressions34
4.6. Sections36
4.7. Chapter remarks36
4.8. Exercises37
Chapter 5. List comprehensions38
5.1. Generators38
5.2. Guards39
5.3. The zip function40
5.4. String comprehensions41
5.5. The Caesar cipher42
5.6. Chapter remarks46
5.7. Exercises46
Chapter 6. Recursive functions48
6.1. Basic concepts48
6.2. Recursion on lists49
6.3. Multiple arguments52
6.4. Multiple recursion53
6.5. Mutual recursion53
6.6. Advice on recursion55
6.7. Chapter remarks59
6.8. Exercises59
Chapter 7. Higher-order functions61
7.1. Basic concepts61
7.2. Processing lists62
7.3. The foldr function64
7.4. The foldl function66
7.5. The composition operator68
7.6. String transmitter69
7.7. Chapter remarks72
7.8. Exercises72
Chapter 8. Functional parsers74
8.1. Parsers74
8.2. The parser type75
8.3. Basic parsers75
8.4. Sequencing76
8.5. Choice78
8.6. Derived primitives78
8.7. Handling spacing81
8.8. Arithmetic expressions82
8.9. Chapter remarks85
8.10. Exercises85
Chapter 9. Interactive programs87
9.1. Interaction87
9.2. The input/output type88
9.3. Basic actions88
9.4. Sequencing89
9.5. Derived primitives90
9.6. Calculator91
9.7. Game of life94
9.8. Chapter remarks97
9.9. Exercises97
Chapter 10. Declaring types and classes99
10.1. Type declarations99
10.2. Data declarations100
10.3. Recursive types102
10.4. Tautology checker105
10.5. Abstract machine109
10.6. Class and instance declarations111
10.7. Chapter remarks114
10.8. Exercises114
Chapter 11. The countdown problem116
11.1. Introduction116
11.2. Formalising the problem117
11.3. Brute force solution119
11.4. Combining generation and evaluation120
11.5. Exploiting algebraic properties121
11.6. Chapter remarks123
11.7. Exercises123
Chapter 12. Lazy evaluation124
12.1. Introduction124
12.2. Evaluation strategies125
12.3. Termination128
12.4. Number of reductions129
12.5. Infinite structures130
12.6. Modular programming132
12.7. Strict application134
12.8. Chapter remarks137
12.9. Exercises137
Chapter 13. Reasoning about programs139
13.1. Equational reasoning139
13.2. Reasoning about Haskell140
13.3. Simple examples141
13.4. Induction on numbers142
13.5. Induction on lists145
13.6. Making append vanish146
13.7. Compiler correctness150
13.8. Chapter remarks154
13.9. Exercises154
Appendix A. Standard prelude156
A.1. Classes156
A.2. Logical values157
A.3. Characters and strings158
A.4. Numbers159
A.5. Tuples160
A.6. Maybe160
A.7. Lists160
A.8. Functions164
A.9. Input/output164
Appendix B. Symbol table166
Bibliography167
Index169

Additional Resources