#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