Index

Any inaccuracies in this index may be explained by the fact that it has been prepared with the help of a computer.

Donald E. Knuth, Fundamental Algorithms (Volume 1 of The Art of Computer Programming)


! in names
" (double quote)
calculus, see lambda calculus
notation for mathematical function
, see pi
sum (sigma) notation
, see theta
' (single quote)
    read and, [2]
* (primitive multiplication procedure)
+ (primitive addition procedure)
, (comma, used with backquote)
- (primitive subtraction procedure)
    as negation
/ (primitive division procedure)
< (primitive numeric comparison predicate)
= (primitive numeric equality predicate)
=number?
=zero? (generic)
    for polynomials
> (primitive numeric comparison predicate)
>=, [2]
? , in predicate names
#f
#t
` (backquote)
;, see semicolon


Abelson, Harold
abs, [2], [3]
absolute value
abstract data, see also data abstraction
abstract models for data
abstract syntax
    in metacircular evaluator
    in query interpreter
abstraction, see also means of abstraction; data abstraction; higher-order procedures
    common pattern and
    metalinguistic
    procedural
    in register-machine design
    of search in nondeterministic programming
abstraction barriers, [2], [3]
    in complex-number system
    in generic arithmetic system
accelerated-sequence
accumulate, [2]
    same as fold-right
accumulate-n
accumulator, [2]
Áchárya, Bháscara
Ackermann's function
acquire a mutex
actions, in register machine
actual-value
Ada
    recursive procedures
Adams, Norman I., IV
add (generic)
    used for polynomial coefficients, [2]
add-action!, [2]
add-binding-to-frame!
add-complex
add-complex-to-schemenum
add-interval
add-lists
add-poly
add-rat
add-rule-or-assertion!
add-streams
add-terms
add-to-agenda!, [2]
add-vect
addend
adder
    full
    half
    ripple-carry
adder (primitive constraint)
additivity, [2], [3], [4]
address
address arithmetic
Adelman, Leonard
adjoin-arg
adjoin-set
    binary-tree representation
    ordered-list representation
    unordered-list representation
    for weighted sets
adjoin-term, [2]
advance-pc
after-delay, [2]
agenda, see digital-circuit simulation
A'h-mose
algebra, symbolic, see symbolic algebra
algebraic expression
    differentiating
    representing
    simplifying
algebraic specification for data
Algol
    block structure
    call-by-name argument passing, [2]
    thunks, [2]
    weakness in handling compound objects
algorithm
    optimal
    probabilistic, [2]
aliasing
all-regs (compiler)
Allen, John
alternative of if
always-true
amb
amb evaluator, see nondeterministic evaluator
ambeval
an-element-of
an-integer-starting-from
analog computer
analyze
    metacircular
    nondeterministic
analyze-...
    metacircular, [2]
    nondeterministic
analyze-amb
analyzing evaluator
    as basis for nondeterministic evaluator
    let
and (query language)
    evaluation of, [2], [3]
and (special form)
    evaluation of
    why a special form
    with no subexpressions
and-gate
    and-gate
angle
    data-directed
    polar representation
    rectangular representation
    with tagged data
angle-polar
angle-rectangular
announce-output
APL
Appel, Andrew W.
append, [2], [3]
    as accumulation
    append! vs.
    with arbitrary number of arguments
    as register machine
    ``what is'' (rules) vs. ``how to'' (procedure)
append!
    as register machine
append-instruction-sequences, [2]
append-to-form (rules)
application?
applicative-order evaluation
    in Lisp
    normal order vs., [2], [3]
apply (lazy)
apply (metacircular)
    primitive apply vs.
apply (primitive procedure)
apply-dispatch
    modified for compiled code
apply-generic
    with coercion, [2]
    with coercion by raising
    with coercion of multiple arguments
    with coercion to simplify
    with message passing
    with tower of types
apply-primitive-procedure, [2], [3]
apply-rules
arbiter
arctangent
argl register
argument passing, see call-by-name argument passing; call-by-need argument passing
argument(s)
    arbitrary number of, [2]
    delayed
Aristotle's De caelo (Buridan's commentary on)
arithmetic
    address arithmetic
    generic, see also generic arithmetic operations
    on complex numbers
    on intervals
    on polynomials, see polynomial arithmetic
    on power series, [2]
    on rational numbers
    primitive procedures for
articles
ASCII code
assemble, [2]
assembler, [2]
assert! (query interpreter)
assertion
    implicit
assign (in register machine)
    simulating
    storing label in register
assign-reg-name
assign-value-exp
assignment, see also set!
    benefits of
    bugs associated with, [2]
    costs of
assignment operator, see also set!
assignment-value
assignment-variable
assignment?
assoc
atan (primitive procedure)
atomic operations supported in hardware
atomic requirement for test-and-set!
attach-tag
    using Scheme data types
augend
automagically
automatic search, see also search
    history of
automatic storage allocation
average
average damping
average-damp
averager (constraint)


B-tree
backquote
backtracking, see also nondeterministic computing
Backus, John
Baker, Henry G., Jr.
balanced binary tree, see also binary tree
balanced mobile
bank account, [2]
    exchanging balances
    joint, [2]
    joint, modeled with streams
    joint, with concurrent access
    password-protected
    serialized
    stream model
    transferring money
barrier synchronization
Barth, John
Basic
    restrictions on compound data
    weakness in handling compound objects
Batali, John Dean
begin (special form)
    implicit in consequent of cond and in procedure body
begin-actions
begin?
below, [2]
Bertrand's Hypothesis
beside, [2]
bignum
binary numbers, addition of, see adder
binary search
binary tree
    balanced
    converting a list to a
    converting to a list
    for Huffman encoding
    represented with lists
    sets represented as
    table structured as
bind
binding
    deep
binomial coefficients
black box
block structure, [2]
    in environment model
    in query language
blocked process
body of a procedure
Bolt Beranek and Newman Inc.
Borning, Alan
Borodin, Alan
bound variable
box-and-pointer notation
    end-of-list marker
branch (in register machine)
    simulating
branch of a tree
branch-dest
breakpoint
broken heart
bug
    capturing a free variable
    order of assignments
    side effect with aliasing
bureaucracy
Buridan, Jean
busy-waiting


C
    compiling Scheme into
    error handling, [2]
    recursive procedures
    restrictions on compound data
    Scheme interpreter written in, [2]
ca...r
cache-coherence protocols
cadr
calculator, fixed points with
call-by-name argument passing, [2]
call-by-need argument passing, [2]
    memoization and
call-each
cancer of the semicolon
canonical form, for polynomials
capturing a free variable
car (primitive procedure)
    axiom for
    implemented with vectors
    as list operation
    origin of the name
    procedural implementation of, [2], [3], [4], [5]
Carmichael numbers, [2]
case analysis
    data-directed programming vs.
    general, see also cond
    with two cases (if)
cd...r
cdr (primitive procedure)
    axiom for
    implemented with vectors
    as list operation
    origin of the name
    procedural implementation of, [2], [3], [4], [5]
cdr down a list
cell, in serializer implementation
celsius-fahrenheit-converter
    expression-oriented
center
Cesàro, Ernesto
cesaro-stream
cesaro-test
Chaitin, Gregory
Chandah-sutra
change and sameness
    meaning of
    shared data and
changing money, see counting change
chaos in the Solar System
Chapman, David
character strings
    primitive procedures for, [2]
    quotation of
character, ASCII encoding
Charniak, Eugene
Chebyshev, Pafnutii L'vovich
chess, eight-queens puzzle, [2]
chip implementation of Scheme, [2]
chronological backtracking
Chu Shih-chieh
Church numerals
Church, Alonzo, [2]
Church-Turing thesis
circuit
    digital, see digital-circuit simulation
    modeled with streams, [2]
Clark, Keith L.
clause, of a cond
    additional syntax
Clinger, William, [2]
closed world assumption
closure
    in abstract algebra
    closure property of cons
    closure property of picture-language operations, [2]
    lack of in many languages
coal, bituminous
code
    ASCII
    fixed-length
    Huffman, see Huffman code
    Morse
    prefix
    variable-length
code generator
    arguments of
    value of
coeff, [2]
coercion
    in algebraic manipulation
    in polynomial arithmetic
    procedure
    table
Colmerauer, Alain
combination
    combination as operator of
    compound expression as operator of
    evaluation of
    lambda expression as operator of
    as operator of combination
    as a tree
combination, means of, see also closure
comma, used with backquote
comments in programs
Common Lisp
    treatment of nil
compacting garbage collector
compilation, see compiler
compile
compile-and-go, [2]
compile-and-run
compile-application
compile-assignment
compile-definition
compile-if
compile-lambda
compile-linkage
compile-proc-appl
compile-procedure-call
compile-quoted
compile-self-evaluating
compile-sequence
compile-time environment, [2], [3]
    open coding and
compile-variable
compiled-apply
compiled-procedure-entry
compiled-procedure-env
compiled-procedure?
compiler
    interpreter vs., [2]
    tail recursion, stack allocation, and garbage-collection
compiler for Scheme, see also code generator; compile-time environment; instruction sequence; linkage descriptor; target register
    analyzing evaluator vs., [2]
    assignments
    code generators, see compile-...
    combinations
    conditionals
    definitions
    efficiency
    example compilation
    explicit-control evaluator vs., [2], [3]
    expression-syntax procedures
    interfacing to evaluator
    label generation
    lambda expressions
    lexical addressing
    linkage code
    machine-operation use
    monitoring performance (stack use) of compiled code, [2], [3]
    open coding of primitives, [2]
    order of operand evaluation
    procedure applications
    quotations
    register use, [2], [3]
    running compiled code
    scanning out internal definitions, [2]
    self-evaluating expressions
    sequences of expressions
    stack usage, [2], [3]
    structure of
    tail-recursive code generated by
    variables
complex package
complex numbers
    polar representation
    rectangular representation
    rectangular vs. polar form
    represented as tagged data
complex->complex
complex-number arithmetic
    interfaced to generic arithmetic system
    structure of system
composition of functions
compound data, need for
compound expression, see also combination; special form
    as operator of combination
compound procedure, see also procedure
    used like primitive procedure
compound query
    processing, [2], [3], [4], [5]
compound-apply
compound-procedure?
computability, [2]
computational process, see also process
computer science, [2]
    mathematics vs., [2]
concrete data representation
concurrency
    correctness of concurrent programs
    deadlock
    functional programming and
    mechanisms for controlling
cond (special form)
    additional clause syntax
    clause
    evaluation of
    if vs.
    implicit begin in consequent
cond->if
cond-actions
cond-clauses
cond-else-clause?
cond-predicate
cond?
conditional expression
    cond
    if
congruent modulo n
conjoin
connect, [2]
connector(s), in constraint system
    operations on
    representing
Conniver
cons (primitive procedure)
    axiom for
    closure property of
    implemented with mutators
    implemented with vectors
    as list operation
    meaning of the name
    procedural implementation of, [2], [3], [4], [5], [6]
cons up a list
cons-stream (special form), [2]
    lazy evaluation and
    why a special form
consciousness, expansion of
consequent
    of cond clause
    of if
const (in register machine)
    simulating
    syntax of
constant (primitive constraint)
constant, specifying in register machine
constant-exp
constant-exp-value
constraint network
constraint(s)
    primitive
    propagation of
construct-arglist
constructor
    as abstraction barrier
contents
    using Scheme data types
continuation
    in nondeterministic evaluator, [2], see also failure continuation; success continuation
    in register-machine simulator
continue register
    in explicit-control evaluator
    recursion and
continued fraction
    e as
    golden ratio as
    tangent as
control structure
controller for register machine
    controller diagram
conventional interface
    sequence as
Cormen, Thomas H.
corner-split
correctness of a program
cos (primitive procedure)
cosine
    fixed point of
    power series for
cosmic radiation
count-change
count-leaves, [2]
    as accumulation
    as register machine
count-pairs
counting change, [2]
credit-card accounts, international
Cressey, David
cross-type operations
cryptography
cube, [2], [3]
cube root
    as fixed point
    by Newton's method
cube-root
current time, for simulation agenda
current-time, [2]
cycle in list
    detecting


Darlington, John
data, [2]
    abstract, see also data abstraction
    abstract models for
    algebraic specification for
    compound
    concrete representation of
    hierarchical, [2]
    list-structured
    meaning of
    mutable, see mutable data objects
    numerical
    procedural representation of
    as program
    shared
    symbolic
    tagged, [2]
data abstraction, [2], [3], [4], [5], see also metacircular evaluator
    for queue
data base
    data-directed programming and
    indexing, [2]
    Insatiable Enterprises personnel
    logic programming and
    Microshaft personnel
    as set of records
data paths for register machine
    data-path diagram
data types
    in Lisp
    in strongly typed languages
data-directed programming, [2]
    case analysis vs.
    in metacircular evaluator
    in query interpreter
data-directed recursion
deadlock
    avoidance
    recovery
debug
decimal point in numbers
declarative vs. imperative knowledge, [2]
    logic programming and, [2]
    nondeterministic computing and
decode
decomposition of program into parts
deep binding
deep-reverse
deferred operations
define (special form)
    with dotted-tail notation
    environment model of
    lambda vs.
    for procedures, [2]
    syntactic sugar
    value of
    why a special form
define (special form)
    internal, see internal definition
define-variable!, [2]
definite integral
    estimated with Monte Carlo simulation, [2]
definition, see define; internal definition
definition-value
definition-variable
definition?
deKleer, Johan, [2]
delay (special form)
    explicit
    explicit vs. automatic
    implementation using lambda
    lazy evaluation and
    memoized, [2]
    why a special form
delay, in digital circuit
delay-it
delayed argument
delayed evaluation, [2]
    assignment and
    explicit vs. automatic
    in lazy evaluator
    normal-order evaluation and
    printing and
    streams and
delayed object
delete-queue!, [2]
denom, [2]
    axiom for
    reducing to lowest terms
dense polynomial
dependency-directed backtracking
deposit , with external serializer
deposit message for bank account
depth-first search
deque
deriv (numerical)
deriv (symbolic)
    data-directed
derivative of a function
derived expressions in evaluator
    adding to explicit-control evaluator
design, stratified
differential equation, see also solve
    second-order, [2]
differentiation
    numerical
    rules for, [2]
    symbolic, [2]
diffusion, simulation of
digital signal
digital-circuit simulation
    agenda
    agenda implementation
    primitive function boxes
    representing wires
    sample simulation
Dijkstra, Edsger Wybe
Dinesman, Howard P.
Diophantus's Arithmetic, Fermat's copy of
disjoin
dispatching
    comparing different styles
    on type, see also data-directed programming
display (primitive procedure), [2]
display-line
display-stream
distinct?
div (generic)
div-complex
div-interval
    division by zero
div-poly
div-rat
div-series
div-terms
divides?
divisible?
division of integers
dog, perfectly rational, behavior of
DOS/Windows
dot-product
dotted-tail notation
    for procedure parameters, [2]
    in query pattern, [2]
    in query-language rule
    read and
Doyle, Jon
draw-line
driver loop
    in explicit-control evaluator
    in lazy evaluator
    in metacircular evaluator
    in nondeterministic evaluator, [2]
    in query interpreter, [2]
driver-loop
    for lazy evaluator
    for metacircular evaluator
    for nondeterministic evaluator


e
    as continued fraction
    as solution to differential equation
ex, power series for
Earth, measuring circumference of
edge1-frame
edge2-frame
efficiency, see also order of growth, see also order of growth
    of compilation
    of data-base access
    of evaluation
    of Lisp
    of query processing
    of tree-recursive process
EIEIO
eight-queens puzzle, [2]
electrical circuits, modeled with streams, [2]
element-of-set?
    binary-tree representation
    ordered-list representation
    unordered-list representation
else (special symbol in cond)
embedded language, language design using
empty list
    denoted as '()
    recognizing with null?
empty stream
empty-agenda?, [2]
empty-arglist
empty-instruction-sequence
empty-queue?, [2]
empty-termlist?, [2]
encapsulated name
enclosing environment
enclosing-environment
encode
end-of-list marker
end-segment, [2]
end-with-linkage
engineering vs. mathematics
entry
enumerate-interval
enumerate-tree
enumerator
env register
environment, [2]
    compile-time, see compile-time environment
    as context for evaluation
    enclosing
    global, see global environment
    lexical scoping and
    in query interpreter
    renaming vs.
environment model of evaluation, [2]
    environment structure
    internal definitions
    local state
    message passing
    metacircular evaluator and
    procedure-application example
    rules for evaluation
    tail recursion and
eq? (primitive procedure)
    for arbitrary objects
    as equality of pointers, [2]
    implementation for symbols
    numerical equality and
equ? (generic predicate)
equal-rat?
equal?
equality
    in generic arithmetic system
    of lists
    of numbers, [2], [3]
    referential transparency and
    of symbols
equation, solving, see half-interval method; Newton's method; solve
Eratosthenes
error (primitive procedure)
error handling
    in compiled code
    in explicit-control evaluator, [2]
Escher, Maurits Cornelis
estimate-integral
estimate-pi, [2]
Euclid's Algorithm, [2], see also greatest common divisor
    order of growth
    for polynomials
Euclid's Elements
Euclid's proof of infinite number of primes
Euclidean ring
Euler, Leonhard
    proof of Fermat's Little Theorem
    series accelerator
euler-transform
ev-application
ev-assignment
ev-begin
ev-definition
ev-if
ev-lambda
ev-quoted
ev-self-eval
ev-sequence
    with tail recursion
    without tail recursion
ev-variable
eval (lazy)
eval (metacircular), [2]
    analyzing version
    data-directed
    primitive eval vs.
eval (primitive procedure)
    MIT Scheme
    used in query interpreter
eval-assignment
eval-definition
eval-dispatch
eval-if (lazy)
eval-if (metacircular)
eval-sequence
evaluation
    applicative-order, see applicative-order evaluation
    delayed, see delayed evaluation
    environment model of, see environment model of evaluation
    models of
    normal-order, see normal-order evaluation
    of a combination
    of and
    of cond
    of if
    of or
    of primitive expressions
    of special forms
    order of subexpression evaluation, see order of evaluation
    substitution model of, see substitution model of procedure application
evaluator, see also interpreter
    as abstract machine
    metacircular
    as universal machine
evaluators, see metacircular evaluator; analyzing evaluator; lazy evaluator; nondeterministic evaluator; query interpreter; explicit-control evaluator
even-fibs, [2]
even?
evening star, see Venus
event-driven simulation
evlis tail recursion
exact integer
exchange
exclamation point in names
execute
execute-application
    metacircular
    nondeterministic
execution procedure
    in analyzing evaluator
    in nondeterministic evaluator, [2], [3]
    in register-machine simulator, [2]
exp register
expand-clauses
explicit-control evaluator for Scheme
    assignments
    combinations
    compound procedures
    conditionals
    controller
    data paths
    definitions
    derived expressions
    driver loop
    error handling, [2]
    expressions with no subexpressions to evaluate
    as machine-language program
    machine model
    modified for compiled code
    monitoring performance (stack use)
    normal-order evaluation
    operand evaluation
    operations
    optimizations (additional)
    primitive procedures
    procedure application
    registers
    running
    sequences of expressions
    special forms (additional), [2]
    stack usage
    tail recursion, [2], [3]
    as universal machine
expmod, [2], [3]
exponential growth
    of tree-recursive Fibonacci-number computation
exponentiation
    modulo n
expression, see also compound expression; primitive expression
    algebraic, see algebraic expressions
    self-evaluating
    symbolic, see also symbol(s)
expression-oriented vs. imperative programming style
expt
    linear iterative version
    linear recursive version
    register machine for
extend-environment, [2]
extend-if-consistent
extend-if-possible
external-entry
extract-labels, [2]


#f
factorial, see also factorial
    infinite stream
    with letrec
    without letrec or define
factorial
    as an abstract machine
    compilation of, [2]
    environment structure in evaluating
    linear iterative version
    linear recursive version
    register machine for (iterative), [2]
    register machine for (recursive), [2]
    stack usage, compiled
    stack usage, interpreted, [2]
    stack usage, register machine
    with assignment
    with higher-order procedures
failure continuation (nondeterministic evaluator), [2]
    constructed by amb
    constructed by assignment
    constructed by driver loop
failure, in nondeterministic computation
    bug vs.
    searching and
false
false
false?
fast-expt
fast-prime?
feedback loop, modeled with streams
Feeley, Marc
Feigenbaum, Edward
Fenichel, Robert
Fermat, Pierre de
Fermat test for primality
    variant of
Fermat's Little Theorem
    alternate form
    proof
fermat-test
fetch-assertions
fetch-rules
fib
    linear iterative version
    logarithmic version
    register machine for (tree-recursive), [2]
    stack usage, compiled
    stack usage, interpreted
    tree-recursive version, [2]
    with memoization
    with named let
Fibonacci numbers, see also fib
    Euclid's GCD algorithm and
    infinite stream of, see fibs
fibs (infinite stream)
    implicit definition
FIFO buffer
filter, [2]
filter
filtered-accumulate
find-assertions
find-divisor
first-agenda-item, [2]
first-class elements in language
first-exp
first-frame
first-operand
first-segment
first-term, [2]
fixed point
    computing with calculator
    of cosine
    cube root as
    fourth root as
    golden ratio as
    as iterative improvement
    in Newton's method
    nth root as
    square root as, [2], [3]
    of transformed function
    unification and
fixed-length code
fixed-point
    as iterative improvement
fixed-point-of-transform
flag register
flatmap
flatten-stream
flip-horiz, [2]
flip-vert, [2]
flipped-pairs, [2], [3]
Floyd, Robert
fold-left
fold-right
for-each, [2]
for-each-except
Forbus, Kenneth D.
force, [2]
    forcing a thunk vs.
force a thunk
force-it
    memoized version
forget-value!, [2]
formal parameters
    names of
    scope of
formatting input expressions
Fortran, [2]
    inventor of
    restrictions on compound data
forwarding address
fourth root, as fixed point
fraction, see rational number(s)
frame (environment model)
    as repository of local state
    global
frame (picture language), [2]
    coordinate map
frame (query interpreter), see also pattern matching; unification
    representation
frame-coord-map
frame-values
frame-variables
framed-stack discipline
Franz Lisp
free register, [2]
free list
free variable
    capturing
    in internal definition
Friedman, Daniel P., [2]
fringe
    as a tree enumeration
front-ptr
front-queue, [2]
full-adder
    full-adder
function (mathematical)
     notation for
    Ackermann's
    composition of
    derivative of
    fixed point of
    procedure vs.
    rational
    repeated application of
    smoothing of
function box, in digital circuit
functional programming, [2]
    concurrency and
    functional programming languages
    time and


Gabriel, Richard P.
garbage collection
    memoization and
    mutation and
    tail recursion and
garbage collector
    compacting
    mark-sweep
    stop-and-copy
GCD, see greatest common divisor
gcd
    register machine for, [2]
gcd-terms
general-purpose computer, as universal machine
generate-huffman-tree
generating sentences
generic arithmetic operations
    structure of system
generic operation
generic procedure, [2]
    generic selector, [2]
Genesis
get, [2]
get-contents
get-global-environment
get-register
get-register-contents, [2]
get-signal, [2]
get-value, [2]
glitch
global environment, [2]
    in metacircular evaluator
global frame
Goguen, Joseph
golden ratio
    as continued fraction
    as fixed point
Gordon, Michael
goto (in register machine)
    label as destination
    simulating
goto-dest
grammar
graphics, see picture language
Gray, Jim
greatest common divisor, see also gcd
    generic
    of polynomials
    used to estimate
    used in rational-number arithmetic
Green, Cordell
Griss, Martin Lewis
Guttag, John Vogel


half-adder
    half-adder
    simulation of
half-interval method
    half-interval-method
    Newton's method vs.
halting problem
Halting Theorem
Hamming, Richard Wesley, [2]
Hanson, Christopher P., [2]
Hardy, Godfrey Harold, [2]
has-value?, [2]
Hassle
Havender, J.
Haynes, Christopher T.
headed list, [2]
Hearn, Anthony C.
Henderson, Peter, [2], [3]
    Henderson diagram
Heraclitus
Heron of Alexandria
Hewitt, Carl Eddie, [2], [3], [4]
hiding principle
hierarchical data structures, [2]
hierarchy of types
    in symbolic algebra
    inadequacy of
high-level language, machine language vs.
higher-order procedures
    in metacircular evaluator
    procedure as argument
    procedure as general method
    procedure as returned value
    strong typing and
Hilfinger, Paul
Hoare, Charles Antony Richard
Hodges, Andrew
Hofstadter, Douglas R.
Horner, W. G.
Horner's rule
``how to'' vs. ``what is'' description, see imperative vs. declarative knowledge
Huffman code
    optimality of
    order of growth of encoding
Huffman, David
Hughes, R. J. M.


IBM 704
identity
if (special form)
    cond vs.
    evaluation of
    normal-order evaluation of
    one-armed (without alternative)
    predicate, consequent, and alternative of
    why a special form
if-alternative
if-consequent
if-predicate
if?
imag-part
    data-directed
    polar representation
    rectangular representation
    with tagged data
imag-part-polar
imag-part-rectangular
imperative programming
imperative vs. declarative knowledge, [2]
    logic programming and, [2]
    nondeterministic computing and
imperative vs. expression-oriented programming style
implementation dependencies, see also unspecified values
    numbers
    order of subexpression evaluation
inc
incremental development of programs
indeterminate of a polynomial
indexing a data base, [2]
inference, method of
infinite series
infinite stream(s)
    merging, [2], [3], [4]
    merging as a relation
    of factorials
    of Fibonacci numbers, see fibs
    of integers, see integers
    of pairs
    of prime numbers, see primes
    of random numbers
    representing power series
    to model signals
    to sum a series
infix notation, prefix notation vs.
inform-about-no-value
inform-about-value
information retrieval, see data base
Ingerman, Peter
initialize-stack operation in register machine, [2]
insert!
    in one-dimensional table
    in two-dimensional table
insert-queue!, [2]
install-complex-package
install-polar-package
install-polynomial-package
install-rational-package
install-rectangular-package
install-scheme-number-package
instantiate
instantiate a pattern
instruction counting
instruction execution procedure
instruction sequence, [2]
instruction tracing
instruction-execution-proc
instruction-text
integer(s)
    dividing
    exact
integerizing factor
integers (infinite stream)
    implicit definition
    lazy-list version
integers-starting-from
integral, see also definite integral; Monte Carlo integration
    of a power series
integral, [2], [3]
    with delayed argument
    with lambda
    lazy-list version
    need for delayed evaluation
integrate-series
integrated-circuit implementation of Scheme, [2]
integrator, for signals
interleave
interleave-delayed
Interlisp
internal definition
    in environment model
    free variable in
    let vs.
    in nondeterministic evaluator
    position of
    restrictions on
    scanning out
    scope of name
Internet ``Worm''
interning symbols
interpreter, see also evaluator
    compiler vs., [2]
    read-eval-print loop
intersection-set
    binary-tree representation
    ordered-list representation
    unordered-list representation
interval arithmetic
invariant quantity of an iterative process
inverter
    inverter
iteration contructs, see looping constructs
iterative improvement
iterative process
    as a stream process
    design of algorithm
    implemented by procedure call, [2], [3], see also tail recursion
    linear, [2]
    recursive process vs., [2], [3], [4]
    register machine for


Jayaraman, Sundaresan


Kaldewaij, Anne
Karr, Alphonse
Kepler, Johannes
key
key of a record
    in a data base
    in a table
    testing equality of
Khayyam, Omar
Knuth, Donald E., [2], [3], [4], [5], [6], [7]
Kohlbecker, Eugene Edmund, Jr.
Kolmogorov, A. N.
Konopasek, Milos
Kowalski, Robert
KRC, [2]


label (in register machine)
    simulating
label-exp
label-exp-label
Lagrange interpolation formula
calculus (lambda calculus)
lambda (special form)
    define vs.
    with dotted-tail notation
lambda expression
    as operator of combination
    value of
lambda-body
lambda-parameters
lambda?
Lambert, J.H.
Lamé, Gabriel
Lamé's Theorem
Lamport, Leslie
Lampson, Butler
Landin, Peter, [2]
language, see natural language; programming language
Lapalme, Guy
last-exp?
last-operand?
last-pair, [2]
    rules
lazy evaluation
lazy evaluator
lazy list
lazy pair
lazy tree
leaf?
least commitment, principle of
lecture, something to do during
left-branch, [2]
Leibniz, Baron Gottfried Wilhelm von
    proof of Fermat's Little Theorem
    series for , [2]
Leiserson, Charles E., [2]
length
    as accumulation
    iterative version
    recursive version
let (special form)
    evaluation model
    internal definition vs.
    named
    scope of variables
    as syntactic sugar, [2]
let* (special form)
letrec (special form)
lexical addressing
    lexical address
lexical scoping
    environment structure and
lexical-address-lookup, [2]
lexical-address-set!, [2]
Lieberman, Henry
LIFO buffer, see stack
line segment
    represented as pair of points
    represented as pair of vectors
linear growth, [2]
linear iterative process
    order of growth
linear recursive process
    order of growth
linkage descriptor
Liskov, Barbara Huberman
Lisp
    acronym for LISt Processing
    applicative-order evaluation in
    on DEC PDP-1
    efficiency of, [2]
    first-class procedures in
    Fortran vs.
    history of
    internal type system
    original implementation on IBM 704
    Pascal vs.
    suitability for writing evaluators
    unique features of
Lisp dialects
    Common Lisp
    Franz Lisp
    Interlisp
    MacLisp
    MDL
    Portable Standard Lisp
    Scheme
    Zetalisp
lisp-value (query interpreter)
lisp-value (query language), [2]
    evaluation of, [2], [3]
list (primitive procedure)
list structure
    list vs.
    mutable
    represented using vectors
list(s)
    backquote with
    cdring down
    combining with append
    consing up
    converting a binary tree to a
    converting to a binary tree
    empty, see empty list
    equality of
    headed, [2]
    last pair of
    lazy
    length of
    list structure vs.
    manipulation with car, cdr, and cons
    mapping over
    nth element of
    operations on
    printed representation of
    quotation of
    reversing
    techniques for manipulating
list->tree
list-difference
list-of-arg-values
list-of-delayed-args
list-of-values
list-ref, [2]
list-structured memory
list-union
lives-near (rule), [2]
local evolution of a process
local name, [2]
local state
    maintained in frames
local state variable
local variable
location
Locke, John
log (primitive procedure)
logarithm, approximating ln 2
logarithmic growth, [2], [3]
logic programming, see also query language; query interpreter
    computers for
    history of, [2]
    in Japan
    logic programming languages
    mathematical logic vs.
logic puzzles
logical and
logical or
logical-not
lookup
    in one-dimensional table
    in set of records
    in two-dimensional table
lookup-label
lookup-prim
lookup-variable-value, [2]
    for scanned-out definitions
looping constructs, [2]
    implementing in metacircular evaluator
lower-bound


machine language
    high-level language vs.
Macintosh
MacLisp
macro, see also reader macro character
magician, see numerical analyst
magnitude
    data-directed
    polar representation
    rectangular representation
    with tagged data
magnitude-polar
magnitude-rectangular
make-account
    in environment model
    with serialization, [2], [3]
make-account-and-serializer
make-accumulator
make-agenda, [2]
make-assign
make-begin
make-branch
make-center-percent
make-center-wi