(. | .), 230
⊥, see bottom
(||), 71 (), 36, 198 (++), 14, 63, 330 (,),330 (,,), 330
(-) (negation), 155 (- >>), 209, 226 (.),111 (/ -), 152 (/ =:),296
(:), 14 (<). 332 (<=). 332 (=<<), 259 (==). 148 (=>>), 212, 226 (>), 332 (>=), 332 (>>), 252 (>>=), 252 ($), 124 ($*), 221 (∓mp;mp;∓mp;mp;),
71, 138 ::, 7
[ ],14 _, 26
(^), 12, 141 T, 166
abstraction, 10-16 data, 13-16 functional, 12-13
naming, 10-12
principle, 10 accumulator, 70, 119, 336 action (IO), 36 adjust, 126
affine transformation, 103 algebraic properties, 99, 308
all, 328
and, 95, 106, 328
animate, 167 animateB, 174 Animation (module), 163 Animation (type synonym), 165 animation, 163-186
reactive, 208-235 any, 328
appendFile, 238
area, 25, 29
arithmetic sequence, 62, 78 arpeggio, 301 array, 276 array, 277 associativity, 14
behavior (pure animation), 173 Behavior (reactive animation), 220 binding, 12
blocked, 266, 273 Bool,
79
Boolean algebra, 101 Boolean values, 79
bottom, 7, 71, 137, 188, 201
bouncing ball, 213
Bounded, 158, 334 break, 127,
324
buffered graphics, 164
Case,123,
351
case sensitivity, 8
catch, 239
channels, 238
Char, 7, 149, 345
characteristic function, 93 chord, 293 circleArea, 13
class, 147--161 CIass,150 deriving,157
declaration, 150 default method, 152 derived instance, 157 inheritance, 153 instance, 151 laws, 160 method, 151
multiple inheritance, 154
operation, 150
subclass, 153
superclass, 153 client, 194 close window, 41 coins, 275
Color, 43, 115
combinators, 185 combinatory logic, 185 Combine, 176 Command,
see action comments, 88 compare, 332 composeM, 257 computation by calculation, 2
concat, 68, 257, 330
concatenate, see (-^) concatMap, 330
cond, 179, 267 cond1, 267
conditional expression, 42 constB, 221 containsR, 97, 152
containsS, 94, 152 Context, 305 Coordinate, 94 cos, 166
Curry, Haskell B., xiii, 106, 185 cat, 296 cycle, 327
data,22
data structure, 14
delay, 293
denominator, 306 deriving,23, 157
Direction, 270 direction, 273
distBetween, 29 .Division, 316
do, 37, 116, 252
domain specific language,
xv, 208 .Doable,
18 Draw, 48 draw, 123 drawIn window, 41 drawPic, 116
drawRegionInwindow, 115, 117 drawShapes, 53
drop, 324
dropCoin, 275
dropwhile, 324 Dur, 288 dur,
295
eccentricity, 76
efficiency, 3, 64, 68, 143, 190 elem, 149, 329
ellipse, 43 emptyA, 172 Enam, 158,
333 enamFrom, 333 enamFrom Then, 333 enamFrom Then To, 333 enamFrom
To, 333
Eq, 148, 152
equality, 148 error, 71, 323 errors, 71 evaluate, 85
Event, 305
Event (from SOEGraphics), 215 Event (in FAL), 220 exceptions, 239 Expr, 84
expressions, 6
fail, 252 Fal, 214
FAL (Functional Animation Language),
208 False, 79 fib, 190
Fibonacci sequence, 190, 207
fibs, 191 field labels, 216 file, 236
FilePath, 37, 238 fillTri, 45 filter, 325
five Circles, 90
fix, 111
fixity declarations, 88
fiashingBall, 180 flip, 107 Float,
18
floating-point number, 1 1 fmap, 249
fold, 65
fold (in a calculation), 5
foldl, 68, 325 foldl1, 325 foldr,
67, 132, 325 foldr1, 325 forkIO, 243
fractal music, 301 fractals, 44 fringe, 84 fromEnam, 333 fromInteger, 155 function
anonymous, 110
application, 9, 105
composition, 111-113
currying, 105-108
lifting, 172 strict, 137 type, 8-10
Functor, 249 funkGroove, 299
generalization, 136 generator, 90 getAndOpenFile, 240
getChanContents, 242 getChar, 238 getKey, 41 getLine, 38 getWindowTick, 168 graphics lO, 40-43 Grid, 278
guard, see pattern, guard
Handle, 236 Haskell, xiii
hClose, 236 head, 14, 57, 322
Heron's formula, 27 hCetChar, 237 hGetContents, 237 hCetLine, 237
Hindley-Milner type system, 60
hPrint, 237
hPutChar, 237
hPutStr, 237
hPutStrLn, 237
Hugs, xvii
id, 251
if then else, 42
ifFun, 179 ill-typed, 8, 149
imperative language, xiii, 265
import, 21, 35
IName, 290
inchToPixel, 49
index, 341
induction, 131
infinite list, see list, infinite
infix, 9
infix, 88
Infix constructors, 85, 347
infixl, 88 infixr, 88
init, 322 inRange, 341
insertMEvent, 319 instance, see
class, instance
Int, 19, 346
Integer, 7, 18, 149, 346
Integral, 157
integral, 213, 227 intToFloat, 49, 157, 306 IO, 36
ioEOFError, 239 IOError, 239 ioError, 240 IOMode, 236
IRL (Imperative Robot Language), 265isEmptyChan,
242
isLeftOf, 95 isnt, 267
iterate, 327
Ix, 158, 341
.kaleidoscope, 181
key, 209, 230 kinds, 264
last, 322
layout, 116
layout rule, 28
lazy evaluation, 78,187
lbp, 209, 225 length, 56, 133, 324 let, 11, 28, 116, 254 lex, 340
library, see module lexicographic ordering, 161
liftn, 175 line, 43, 293 lines, 327 List (library), 321
list, 6, 13
indexing, 277,291,323
infinite, 78,132,187
partial, 202
list comprehension, 90,258
listProd, 66, 106 listSum, 15, 66, 106, 134 lookup, 329
Main, 36 main, 36
makeStream, 247 manyCircles, 90 map, 58, 330 mapM, 259 mapM_, 259 map Tree, 83 max,
332 maxBound, 334 maximum, 329
Maybe, 102, 126, 255 MDL (module), 313
MDL (Music Description Language),
287
memo, 200 memo1, 200 memoization, 198-201 metro,
306
MEvent, 316 MEvents, 318 MFType, 314 MIDI, 298, 304, 313 General, 314
MidiFile, 304, 314
min, 332 minBound, 334 minbound, 183 minimum, 329
mod, 291
modularity, 17module, 21
exporting, 34,74
import, 21,35
importing, 35,115
interface, 21
qualified, 114moduIe, 21Monad (library), 252Monad (type class), 252monad,
251monad laws, 254MonadPlus, 259Monoid, 176mouse, 233
move, 266, 274
mplus, 259
Music (data type), 288 Music (module), 288 mzero,
259
negate, 155newChan, 242newtype, 173normal order, 189notElem,
329NoteOff,316NoteOn,
316null, 323
Num, 147,154,343number
systems, 17-20numerator, 306numerical analysis, 18
octave, 288 onCoin, 275
oneCircle, 90 openFile, 236 openWindow, 40
openWindowEx, 168 operators, 9
or, 95,106,328Ord, 153,332outputMidiFile, 304,319overA, 172overGraphic, 171overMany, 177overManyA, 172
paddleball, 233paint, 210pair, 6parser, 338partition, 317pattern, 15as-pattern, 348
binding, 198 guard, 79, 350 irrefutable, 348 lazy, 197, 349
matching, 15, 25, 139, 348-351
nested, 26
refutable, 348
wildcard, 26, 349 PC, 152 pcToInt, 289
penDown, 266, 275 penUp, 266, 275 perc, 298
percussion, 298, 314 PercussionSound, 299 Perform, 305 perform, 305, 306 Performance, 304 performToMEvs, 316 performToMidi, 316
Perimeter, 74 perimeter, 74, 79
pi, 11
pickCoin, 275 picToGraphic,
170 picToList, 126 Picture (data type),
115 Picture (module), 114
Pitch, 288 pitch,
289 PitchClass, 288
pixelToInch, 49 planets, 166
Point, 41 polyArca, 27 polyBe_^r, 43
polygon, 43 polyline, 43 polymorphism, 56-58 polyrhythm, 294 posInts, 109 Position, 270 precedence, 10, 141
default, 89 PreludeList, 321
primGReg, 120 product, 329 ProgChange, 316
putChar, 238 putCharList, 39, 58
putStr, 37, 39, 59, 112, 259
quicksort, 154, 162 quot, 143, 291
range, 341
Ratio, 306 Rational, 18 ratioToFloat, 306 Ray, 95
Reactimate, 245
reactimate, 209, 245 reactivity, 208
Read, 158, 334, 338
read, 341
readChan, 242 readList,
340 readParen, 340 ReadS, 338 reads, 338, 341 readsPrec, 340 recursion, 16, 131 Region (data type), 87 Region (module), 87 region ToGraphic, 170 regionToGRegion, 117, 119 regToGReg, 119
repeat, 206, 327 repeatM, 293 replicate, 327
return, 36, 252
reverse, 69, 107, 135, 204, 328 revM,295
revolvingBalL 166 revolvingBalls, 180
Robot, 271 RobotState, 270
roll, 297 rotate, 181 rabberBall, 166
round
runGraphics, 41 runRobot, 284
sample, 246 scanl, 78, 326
scanl1, 326 scanr, 326 scanr1, 326 section, 108 self-similar music, 301
selfSim, 302
sequence, 259 seauence_..,39, 61, 259 server, 194 setGraphic, 168 setPenColor, 266, 275
SetTempo, 316 Shape (data type),
22
Shape (module), 21 shapeToGraphic, 51 shapeToGRegion, 119, 121, 123 shearEllipse, 43
Show, 23, 158, 334
show, 335, 338 showList, 337
ShowS,336
shows, 336, 338 showsPrec, 337 sides, 75
Sierpinski's Triangle, 44 sierpinskiTri, 45 signum, 155 simple, 4
SimpleGraphics, 35
sin, 166
snapshot, 212, 230
SOEGraphics, 35 software engineering, 1 space leak, 199 spaceClose, 42
spacewait, 282
span, 324 spectrum, 183
splitAt, 324 splitByInst, 316, 317
standard Libraries, 35 Standard Prelude, 35
state monad, 261-263, 270
step, 231 stepAccum,
232
streams, 187-207
approximation to, 201
diagrams, 193
inductive properties of, 201
limit of, 202
recursive, 190 strict, see function, strict String, 37 sum, 329 switch, 211, 222
tail, 14, 57, 322 take, 91, 203, 324 takeWhile, 79, 324 tellTime, 167 testLinux, 320
testNT,320testWin95,320text, 41Time, 165
time, 175,221
time transformation, 1 79 timeGetTime, 168 timeTransA, 179 toEnum, 333 totalArea, 12, 16 totalCircleArea, 112
totalSquareArea, 112 Track, 316 trans, 50, 292
translate, 210 transList, 51, 58, 134 Tree, 82 treeHeight, 84 trees,
81- 86 treeSize, 84 triArea, 28
trill, 297True, 79tuples, 346turn, 180Turnable, 180turnLeft,
266,273turnRight, 266,273turnTo, 266,273type, 7,8,345
constructor, 22, 249
higher-order, 249
inference, 9
polymorphic, 56--58, 81, 147 principal, 60
qualified, 14 7-- 160
recursive, 82, 88
signature, 9, 49 synonym, 173 variable, 57
type, 24
type class, see class unfold (in a calculation), 4
unit type, 36, 198, 346
unlines, 327
untilB, 209,222
unwords, 327unzip,
331unzip3,331UserAction, 215
values, 6
Vector, 87 well-typed, 8
when, 213, 227 where, 27, 116
while, 227
while (command in FAL), 212 while
(command in IRL), 267 wildcard, see pattern wildcard windowUser, 246 withColor, 43 withElem, 211, 229 Word32, 168
words, 327 writeChan, 242 writeFile, 37, 238
zip, 62,330
zip3, 330
zipWith, 75, 331 zipWith3, 331