CS 307: Lecture Notes


Copyright © 2000 by Gordon S. Novak Jr.

Permission is granted for individuals to make copies of these notes for personal use, or for instructors to make copies for classroom use.

Contents

abs 42

abstraction 21

actual 54

address 205

address space 231

ai 30

algorithm 24

alist 117, 145

ambiguity 198

and 49

anonymous 157

append 102, 112

apply 155, 223

architecture 28

argument 54, 219

array 158, 196

artificial intelligence 30

ascii 162

assignment 80

assoc 118

association list 117, 141, 145

assq 117

assv 117

atan 43

auxiliary function 67

backquote 218

bag 123

base case 65

begin 46, 62, 197

big o 84

binding 38, 45, 55, 59, 80, 94, 145, 221

bomb-proof 31

boolean? 48, 50

bound 54

box diagram 100

c++ 190

cadddr 97

call by value 214

call by reference 214

car 96, 105, 228

case 92

cdr 96, 105, 228

char->integer 164

char-downcase 164

char-upcase 164

char=? 163

char? 48, 162

character 162

cipher 172

class 181, 184, 204

close 188

close-input-port 188

close-output-port 188

combination 37

comments 61

compilation 241

complex? 48

cond 51

cons 98, 99, 111, 228

copy-list 128

copy-tree 133

copying garbage collection 232

correct 25

data abstraction 180

declarations 192

declarative 120

define 38, 79, 93

dereference 206

design pattern 66, 69, 106, 108, 134, 135

destructive operations 112, 174

display 187

do 89

dolist 122

dot notation 219

dotimes 82

dotted pair 145

element 123, 158

else 51

encryption 172

environment 54, 221

eq? 103

equal? 103

eqv? 103

eval 154, 222

evaluation 45, 154, 221, 222

even? 48

every 131

exact 42

exact? 48

expression 194

expt 42

#f 48

field 204

filename 188

first 96, 97

float 43

for-each 156

formal 54

fourth 97

free storage list 228

functional programming 80

garbage 229

garbage collection 229

gcd 42

global 75

global variable 79

heap 228

i/o 187

identifier 39

if 46, 198

implicit begin 62

incremental 234

indentation 197

index 158

inexact 43

inexact? 48

infinite loop 64

infix 194

initialize 73

input-port? 188

input/output 187

integer 42

integer->char 164

integer? 48

interpreter 221

intersection 124, 125

isomorphism 20

iteration 81, 199

java 190

keywords 39

lambda 157

lambda expression 157

language 22

last 107

lcm 42

length 102

let 73

let* 76

lexical scoping 78

lexical scope 191

lisp interpreter 221

lisp reader 236

list 95, 100, 105, 111

list->string 169

list->vector 161

list-ref 121

list-tail 121

list? 121

machine language 22

macro 215

make-string 166

make-vector 159

map 156

mapping 20, 156

mark 230

mark-and-sweep 230

match 144

match? 147

matching 150

max 42

member 115, 116, 124

memq 115

memv 115

message 180, 181

method 181

min 42

mnemonic 40

modulo 42

multiset 123

nconc 175, 176

negative? 48

network 27

newline 187

nil 205

not 50

nreverse 178

null 205

null? 103, 105

number? 48

numerical analysis 32

object 181

object-oriented programming 180

odd? 48

oop 180

open 188

open-input-file 188

open-output-file 188

optimization 152

or 50

order 84

output-port? 188

pair 98, 99, 145, 228

pair? 48, 103

parameter 214

pascal 190

pattern matching 144

pattern 144, 150

performance 84

pointer 99, 205

port 188

positive? 48

postfix 194

precedence 194

predicate 48, 103

prefix 194

program 21

programming 21

quasiquote 218

quotation 94

quote 94

rational 42

rational? 48

reader 236

real 43

real-time 231

real? 48

recognition 149

record 204

recursion 53, 64

recursion on list 106

recursive case 65

reference counting 233

representation 20

rest 96

reverse 102, 114

reverse polish 194

rpn 194

rules 146

scope 73, 191

second 97

selector 181

send 182, 186

set 123

set difference 124

set! 80

set-car! 174

set-cdr! 174

shadow 55

side-effect 80

simulation 20

software engineering 31

some 132

special form 45, 47, 226

stack frame 54

state 68

stream 189

string 165

string->list 169

string-append 170

string-copy 170

string-fill! 170

string-length 169

string-ref 167

string-set! 167

string=? 168

string? 48, 166

structure 99

structure sharing 112

sublis 141, 142, 143

subset 124, 130

subset? 129

subst 138, 139, 140

substitution 138, 150

substring 171

sweep 230

symbol 93

symbol? 48, 103

#t 48

tag 240

tail recursion 70

tail recursion on list 108

tan 43

theory 25

third 97

top level 100

top-down design 220

trace 71

transformation 150

tree recursion 133, 134, 135

type 41

type checking 191

type 192, 240

unary 194

unbound 45

union 124, 127

variables 73

vector 158

vector->list 161

vector-fill! 161

vector-length 161

vector-ref 160

vector-set! 160

vector? 48, 159

well-founded ordering 64

while 86

write 187

write-char 187

zero? 48

CS 307