- abstract data type — Ch. 15, Ch. 16, Ch. 20, Appendix, Glossary
- abstraction — Ch. 17
- action, I/O — Ch. 8
- actions — Ch. 18
- actual parameter — Ch. 1
- addition
- ADT — see abstract data type
- advantages of functional programming — Ch. 17
- Agda — Ch. 21
- algebraic type — Ch. 5, Ch. 14, Appendix, Glossary
- ∀ — Ch. 9
- application — see function application
- application operator ($) — Ch. 11
- argument — Ch. 1, Glossary
- assignment
- associativity — Ch. 3, Ch. 11, Ch. 14, Ch. 18, Glossary
- assumptions — Ch. 9
- Cabal — Ch. 1, Ch. 2, Ch. 6
- calculation — Ch. 1, Ch. 7, Ch. 12, Glossary
- calculator — Ch. 14, Ch. 16, Ch. 17, Ch. 18
- case studies
- calculator — see calculator
- Huffman codes — see Huffman codes
- parsing — see parsing
- pictures — see pictures
- sets — see sets
- simulation — see simulation
- characters — Ch. 1, Ch. 3, Glossary
- classes — Ch. 13, Appendix, Glossary
- clause — Ch. 3, Glossary
- Codespaces — Other implementations
- coding — Ch. 15
- combinator — Ch. 12, Ch. 19
- comment — Ch. 2, Glossary
- compiler — Ch. 1
- complexity — Ch. 20, Glossary
- composition — see function composition
- concatenate — Glossary
- conditional equation — Ch. 3, Glossary
- conditional expression — Ch. 3
- cons — Ch. 7
- constraint — Ch. 1, Ch. 6, Ch. 13
- constructor — Ch. 3, Ch. 5, Ch. 7, Ch. 14, Glossary
- context — Ch. 13, Glossary
- conventions
- capitalizing internal words — Ch. 3
- list variables — Ch. 7
- local type declarations — Ch. 4
- module file names — Ch. 15
- names of properties — Ch. 10
- type comments in module headers — Ch. 16
- type variable names — Ch. 6
- types specified — Ch. 3
- counting — Ch. 20
- Curry, Haskell B. — Ch. 1, Ch. 11
- currying — Ch. 11, Glossary
- data type — see algebraic type
- data-directed programming — Ch. 17, Appendix
- database — Ch. 6
- debugging — Ch. 9
- declaration — Glossary
- deep embedding — Ch. 19
- default — Glossary
- definedness — Ch. 9
- definition — Ch. 1, Glossary
- design — Ch. 4, Appendix, Glossary
div — Operators
- divide and conquer — Ch. 4, Ch. 15, Ch. 16, Ch. 20
- do notation — Ch. 8, Ch. 18
- local definitions — Ch. 8
- Docker — Other implementations
- document index — Ch. 12, Ch. 16
- documentation — Ch. 15
- domain — Ch. 1
- domain-specific language — see DSL
- double quote (“) — Ch. 3
- downloading support materials — Ch. 2, Other implementations
- DSL — Ch. 1, Ch. 19
- dummy values at errors — Ch. 14
- dynamic programming — Ch. 20
- Eddie — Ch. 16
- :edit — Ch. 2
- edit distance — Ch. 14
- editors for Haskell — Other implementations
- Electric Aunt Jemima — see Jemima, Electric Aunt
elem — Operators
- enumerated type — Ch. 4, Ch. 5, Glossary
- equality — Ch. 3, Ch. 13, Ch. 17
- equation — Ch. 1, Glossary
- Eratosthenes — Ch. 17
- error handling — Ch. 14
- errors — Ch. 2, Errors
- evaluation — Ch. 1, Glossary
- evaluation order — Ch. 17
- examples
- document index — see document index
- edit distance — see edit distance
- library database — see library database
- supermarket billing — see supermarket billing
- text processing — see text processing
- exclusive or — Ch. 3
- export — Ch. 15, Glossary
- expression — Ch. 1, Glossary
- expression type — see Expr
- extended exercise
- card games — Ch. 6
- picture implementations — Ch. 6
- positioned pictures — Ch. 6
- extension — Ch. 2
- extensionality principle — Ch. 11, Ch. 17, Glossary
- factorial — Ch. 4, Ch. 17, Ch. 20
- feedback — Ch. 17
- Fibonacci numbers — Ch. 4, Ch. 5, Ch. 17, Ch. 20
- filter — Ch. 10, Ch. 11, Glossary
- finiteness — Ch. 9
- first-class citizens, functions — Ch. 1
- fixity — Ch. 3
- Flo — Ch. 16
- floating point operators — Ch. 3, Operators
- floating-point operators — Ch. 13
- folding — Ch. 10, Ch. 20, Glossary
- foldl — Ch. 20
- foldr — Ch. 10, Ch. 11, Ch. 13, Ch. 20
- foldr1 — Ch. 10
- formal parameter — Ch. 1
- forward composition — Ch. 11, Glossary
- fp-list — Ch. 17
- Frank — Ch. 10
- free variable — Ch. 9
- function — Ch. 1, Appendix, Glossary
- function application — Ch. 1, Ch. 3, Glossary
- partial — see partial application
- syntax — Ch. 11
- function composition — Ch. 1, Ch. 11, Ch. 12, Ch. 13, Ch. 18, Glossary
- function definition
- as description — Ch. 9
- general case
- general form — Ch. 3, Ch. 4
- layout — see layout
- redefining prelude functions — Ch. 3
- functional pictures — Ch. 1
- functional program — Ch. 1
- functional programming — Ch. 1
- I/O — Ch. 2, Ch. 8, Ch. 18
- idempotence — Ch. 11
- identifier — Ch. 1, Ch. 3, Glossary
- identity — Ch. 9, Ch. 18
- if — Ch. 3, Ch. 13
- IHaskell — Other implementations
- imperative programming — Appendix
- implementation — Ch. 1
- implication () — Ch. 9
- inclusive or — Ch. 3
- (ind) — Ch. 9
- induction — Ch. 9, Glossary
- base case — Ch. 9
- choice of induction variable — Ch. 9
- finding proofs — Ch. 9
- for lists — Ch. 9
- generalizing the goal — Ch. 9
- induction hypothesis — Ch. 9
- induction step — Ch. 9
- justification of — Ch. 9
- infinite lists — see lists, infinite
- infix version of a function — Ch. 3
- :info — Ch. 2
- infoCheck — Ch. 13
- information hiding — Ch. 15
- inheritance — Ch. 13, Glossary
- input — Ch. 1, Glossary
- input/output — see I/O
- instance — Ch. 6, Glossary
- intensionality — Ch. 11
- interactive programs — Ch. 18
- interface — Ch. 13, Ch. 15, Ch. 16, Appendix, Glossary
- interpreter — Ch. 1, Ch. 19
- invariant — Ch. 16
- IO — see I/O
- lambda abstraction — Ch. 11
- lambda calculus — Ch. 1
- lambda expression — Glossary
- layout — Ch. 3
- lazy evaluation — Ch. 17, Appendix, Glossary
- libraries, finding your way around — Ch. 6
- library database — Ch. 5, Ch. 10, Ch. 14
- list comprehensions — Ch. 5, Ch. 6, Ch. 10, Ch. 17, Appendix
- list of successes method — Ch. 17
- lists — Ch. 1, Ch. 5, Glossary
- literal — Ch. 3, Glossary
- :load — Ch. 2
- local definitions — Glossary
- map — Ch. 1, Ch. 10, Ch. 11, Ch. 14
- mapping — Ch. 10, Glossary
- mathematical induction — Ch. 17, Appendix, Glossary
- maximal common subsequence — Ch. 20
- memoization — Ch. 20, Glossary
- Miranda — Ch. 21
mod — Operators
- modelling — Ch. 1
- modules — Ch. 2, Ch. 15, Glossary
- monad — Ch. 18, Appendix, Glossary
- monotype — Ch. 13
- multiplicity — Ch. 16
- object-oriented — Ch. 13
- offside rule — Ch. 3, Ch. 4, Glossary
- operation — Ch. 1
- operator — Ch. 1, Ch. 3, Glossary
- operator sections — Ch. 11, Ch. 20, Glossary
- order — Ch. 3, Ch. 20
- output — Ch. 1, Glossary
- overloaded literals
- overloading — Ch. 3, Ch. 13, Glossary
- package — Ch. 6
- palindrome — Ch. 12
- Paradise — Ch. 19
- parameter — Ch. 1, Glossary
- parentheses — Ch. 7
- different roles in Haskell — Ch. 11
- parsing — Ch. 17, Glossary
- partial application — Ch. 11, Glossary
- pattern — Ch. 5, Glossary
- pattern matching — Ch. 3, Ch. 5, Ch. 7, Ch. 14, Ch. 17
- pattern of computation — Ch. 10
- Peccary, Greggery — Ch. 6, Ch. 10
- performance
- pictures — Ch. 1, Ch. 2, Ch. 6, Ch. 10, Ch. 11, Ch. 12, Ch. 19
- alternative representation of — Ch. 6
- extended exercise — Ch. 4
- horse — Ch. 1
- pipeline — Ch. 12
- pitfalls
- ; in error message — Ch. 3
- Char and String — Ch. 3
- function application — Ch. 3
- infinite list generators — Ch. 17
- list comprehensions — Ch. 5
- module names — Ch. 6
- negative literals — Ch. 3
- numeric conversions — Ch. 3
- paired arguments — Ch. 5
- repeated variables in patterns — Ch. 7
- type and constructor names — Ch. 5
- type and data — Ch. 5
- playground — Other implementations
- plumbing — Ch. 11
- point-free programming — Ch. 11
- pointer — Appendix
- polymorphism — Ch. 1, Ch. 6, Appendix, Glossary
- prelude, redefining functions in — Ch. 3
- primitive recursion — Ch. 4, Ch. 14, Ch. 17, Glossary
- processes — Ch. 17
- product type — Ch. 5
- program — Ch. 1
- program development — Ch. 12
- program error — Ch. 2, Errors
- program modification — Ch. 16
- program transformation — Ch. 1, Ch. 11, Ch. 19, Glossary
- programming language — Ch. 1, Ch. 19
- programming paradigm — Ch. 1
- programming paradigms
- project ideas — Projects
- prompt — Ch. 2
- proof — Ch. 1, Ch. 9, Ch. 12, Appendix, Glossary
- properties as functions — Ch. 10
- property — Ch. 1, Ch. 9, Ch. 10
- property-based testing — Ch. 1
- pseudo-random numbers — Ch. 17
- Pythagoras’s theorem — Ch. 1
- Pythagorean triple — Ch. 17
- scale — Ch. 1, Ch. 6
- scanl’ — Ch. 17
- Scheme — Ch. 21
- scope — Ch. 4, Glossary
- script — Ch. 2, Glossary
- search tree — Ch. 16, Ch. 20
- selector — Ch. 5
seq — Operators
- sequencing — see do
- :set — Ch. 2
- sets — Ch. 5, Ch. 16, Glossary
- shallow embedding — Ch. 19
- show — Ch. 3, Ch. 5, Ch. 13
- side-effect — Ch. 1, Glossary
- signature — Ch. 13, Ch. 16, Glossary
- simplification — Ch. 12
- simulation — Ch. 14, Ch. 16, Ch. 17
- single quote (’) — Ch. 3
- smart constructor — Ch. 19
- software — Ch. 1
- sorting — Ch. 7
- space leak — Ch. 20
- specialization — Ch. 11
- specification — Ch. 4
- Stack — Other implementations
- Stackage — Ch. 6
- standard libraries — Ch. 2
- Standard ML — Ch. 21
- standard prelude — see Prelude.hs
- state — Appendix
- store — Ch. 16
- strategies — Ch. 8, Ch. 12
- stream — Glossary
- strings — Ch. 5, Glossary
- structural induction — Ch. 9, Ch. 11, Ch. 17, Glossary
- substitution — Ch. 17, Glossary
- suit — Ch. 6
- sum type — Ch. 14
- supermarket billing — Ch. 6, Ch. 10
- SVG — Ch. 1
- display in browser — Ch. 2
- symbolic evaluation — Ch. 9
- synonym — Ch. 5
- syntax — Ch. 2, Ch. 3, Glossary
- syntax error — Ch. 2, Errors
- system messages — Errors
- tab (t) — Ch. 3
- termination — Ch. 4, Ch. 9, Ch. 14
- testing — Ch. 4
- text processing — Ch. 7, Ch. 20
- toInteger — Ch. 3
- tree — Ch. 14
- trick — Ch. 6
- trump — Ch. 6
- truth table — Ch. 3
- tuples — Ch. 5, Appendix, Glossary
- and lists — Ch. 5
- compared with algebraic type — Ch. 5
- type — Ch. 1, Ch. 2, Ch. 5, Ch. 6, Ch. 13, Glossary
- type checking — Ch. 1, Ch. 13
- type classes — see classes
- type declaration — Ch. 1, Ch. 4, Ch. 12
- type error — Ch. 1, Ch. 2, Ch. 5, Errors
- type synonym — Glossary
- type variable — Ch. 6, Glossary
- type-checking — Ch. 5
- Web site
- for Haskell — Ch. 1
- sites with further information — Ch. 21
- website — Ch. 1
- wildcard (`_’) — Ch. 7