Thinking Functionally with Haskell (54 page)

Bool
,
10
,
30

boolean

conjunction,
see
(&&)

disjunction,
see
(||)

bottom,
see
⊥ undefined value

braces,
15
,
36
,
242

brackets,
15

breadth-first search,
257

break
,
102

C,
239

C#,
x

case
expression,
see
expressions

case analysis,
10
,
53

Category Theory,
71
,
87

chain completeness,
116
,
212
,
220

chain of approximations,
215
,
218
,
225

Char
,
3
,
30
,
90
,
254

Chitil, O.,
209

comment convention,
8

common subexpression elimination,
147

commonWords
,
3
,
4
,
34
,
75

comparison operations,
32

compiled functions,
154

compilers,
36
,
154

complete partial orderings,
218

Complex
,
49

concat
,
6
,
67
,
70
,
157

concatMap
,
307

concrete data types,
194

conditional expressions,
189

const
,
86

context,
11

Control.Monad
,
247
,
264

Control.Monad.ST
,
251

Control.Monad.State.Lazy
,
251

Control.Monad.State.Strict
,
251

conversion functions,
53

coprime numbers,
66

Coq,
337

cosine function,
ix

cp
cartesian product,
92
,
93
,
97
,
131
,
155
,
244
,
320

cross
,
81
,
301

curry
,
86
,
135

Curry, H.B,
87

cycle
,
232

cyclic lists,
212

data constructors,
25
,
56

data type declarations,
30
,
56
,
189
,
194
,
202
,
229

Data.Array
,
259

Data.Char
,
13
,
42
,
227
,
283

Data.Complex
,
49

Data.List
,
75
,
106
,
125
,
154
,
311

Data.Maybe
,
319

Data.STRef
,
251

de Moor, O.,
87

deep embeddings,
194

default definitions,
31

dependently-typed languages,
48
,
90

deriving
clauses,
39
,
57

directed graphs,
260

distributive operations,
130

div
,
9
,
24
,
59

divide and conquer algorithm,
46
,
76

divMod
,
51

do
-notation,
34
,
36
,
239
,
242
,
245

done
,
240

Double
,
49

drop
,
79

dropWhile
,
106

e
,
141

echoing,
241

efficiency,
ix
,
145

Either
,
82
,
132

either
,
132

else
,
12

embedded domain-specific language,
209

empty list,
see
[]

Enum
,
65
,
90
,
211

enumerations,
65
,
210
,
217

enumFrom
,
211

Eq
,
31
,
56

equality operations,
31

equational reasoning,
ix
,
1
,
73
,
81
,
89
,
96
,
99
,
110
,
135
,
298

error
,
36
,
39
,
179

error messages,
23
,
24
,
39
,
43
,
103
,
151
,
192
,
250
,
279

evaluation

eager,
28
,
154
,
157

innermost,
28

lazy,
28
,
75
,
80
,
89
,
145
,
154
,
175
,
198
,
243

outermost,
28

to normal form,
22
,
27
,
146
,
156

exception handling,
239

exp
,
40
,
110
,
141

explicit layout,
242

exponentiation,
40
,
59
,
110

export declarations,
see
modules

expressions

case,
127
,
245

conditional,
12
,
23
,
181

lambda,
26
,
148
,
242

let,
24
,
146
,
147
,
248

well-formed,
22

factorial function,
28
,
220

factoring parsers,
282

failure,
39

Feijen, W.,
xi

Fibonacci function,
164
,
232
,
251
,
266

FilePath
,
34

filter
,
38
,
67
,
70
,
72
,
97
,
98
,
119
,
134
,
299

flat ordering,
217

flip
,
59
,
123
,
148

Float
,
2
,
30
,
49

Floating
,
52

floating-point literal,
51

floating-point numbers,
112
,
293

floor
,
46
,
52
,
60

fmap
,
71

foldl
,
122
,
150
,
152
,
260

foldl'
,
150
,
152

foldl1
,
231

foldr
,
117
,
152
,
164

foldr1
,
121
,
231

forall
,
253

fork
,
81
,
134
,
301

Fractional
,
50

fromInteger
,
50
,
67
,
151

fromIntegral
,
51
,
67
,
151

fromJust
,
319

fst
,
28
,
51

function,
1

application,
2
,
4
,
14

arguments,
1
,
3

composition,
see
(.)

computable,
219

continuous,
219

conversion,
50

higher-order,
110

identity,
see
id

monotonic,
219

non-strict,
29
,
58

overloaded,
31

partial,
9

polymorphic,
31
,
72

primitive,
150

recursive,
17
,
219

results,
1
,
3

strict,
29
,
59
,
72
,
120
,
137
,
150
,
154

type,
see
->

values,
145

Functor
,
71
,
264

functors,
87
,
264

getChar
,
240

getLine
,
241

GHC,
35
,
36
,
154
,
169
,
275

GHCi,
12
,
22
,
36
,
154

Gibbons, J.,
209
,
275

global definition,
see
top-level definition

Goerzen, J.,
21

Gofer,
x
,
275

golden ratio,
164

Graham, R.,
62

grammars,
286

greedy algorithms,
192

guard
,
306

guarded equations,
9
,
12
,
332

guards,
10

Hamming, W.R.,
232

Hangman,
266

Hardy, G.H.,
78

Harper, B.,
47

hash tables,
256

Haskell,
x
,
1

1998 online report,
21

2010 online report,
21
,
111

commands,
1
,
33
,
34
,
239

layout,
36

libraries,
7
,
181

numbers,
2
,
112

Platform,
12
,
154

reserved words,
12

standard prelude,
see
standard prelude

syntax,
22

values,
22

well-formed literals,
122

head
,
38
,
68
,
72

head normal form,
146
,
157
,
172

helper functions,
26

Hinze, R.,
275

History of Haskell
,
20

homomorphisms,
see
laws

Hughes, J.,
209

Hutton, G.,
21
,
297

id
,
18
,
70
,
71
,
94
,
96
,
253

idempotence,
205
,
see
laws

identities,
see
laws

identity elements,
15
,
96
,
184
,
247
,
281

identity function,
see
id

if
,
12

imperative languages,
x

import declarations,
see
modules

in-place algorithms,
170
,
254

indexitis,
95

induction,
110
,
111

base case,
77
,
111

general,
179

inductive case,
77
,
111

over lists,
113

over numbers,
110

pre-packaged,
120

inductive cases,
see
induction

infinite loops,
24
,
28
,
30
,
77
,
124
,
211

infix data constructors,
194

infix operations,
9

infixr
fixity declaration,
153

inits
,
125

inlining,
54

insertion sort,
see
sorting

instance
declarations,
32

Int
,
2
,
30
,
49
,
155
,
254

Integer
,
2
,
49
,
155

integer literals,
50

Integral
,
51
,
155

interact
,
227

interaction,
221

interactive programs,
227

interpreters,
36

involutions,
see
laws

IO
,
33
,
239

isAlpha
,
42

isSpace
,
283

it
,
229

iterate
,
64
,
213
,
301

Ix
,
254
,
255

Jeuring, J.,
209

join
,
264

Other books

The Tartan Touch by Isobel Chace
Salt and Iron by Tam MacNeil
Over Her Dead Body by Bradley Bigato
Nothing Is Impossible by Christopher Reeve
The Good People by Hannah Kent