Index

A | B | C | D | E | F | G | I | K | L | M | N | O | P | Q | R | S | T | U | V

A

accessors (list)
(list, revisited)
(stream)
accumulators
(for binary trees)
(the many uses of)
addition (function, linear)
(function, logarithmic)
andmap (for binary trees)
(for lists)
associativity (of addition)
(of list concatenation)
(of sequencing)
(of string concatenation)
atoi

B

BNF
body (of a lambda-abstraction)
bootstrapping

C

call by name
call by need
call by value
(left to right)
(right to left)
Cartesian product (of 2 sets)
(of 3 sets)
code coverage
command (syntactic unit)
commutativity (of addition)
comparing ordered values
compiler
(bootstrapping a)
(compiling a)
(interpreting a)
(self-)
completeness
(of a representation)
computation (incremental, for Fibonacci numbers)
computer science
computing science
cons
(List.)
(right-associativity of)
context (delimited)
continuation
Coq proof assistant
coverage (branch)
(code)
(condition)
curry
(un)

D

data
data science
data type (abstract)
(concrete)
datalogy
definiens (in a global let-expression)
(in a local let-expression)
delay (by name)
(by need)
(by value)
diagram (I-)
(T-)
dynamic programming

E

emacs
environment (type)
(value)
environments
(as association lists in a module)
(as association lists)
(as functions in a module)
(as functions)
(in a module)
equality (ground)
(physical)
(structural)
equivalence (observational)
errors (syntax)
evaluation order
evaluator
exceptions (catching)
(declaring new)
(raising)
exponentiation (function, linear)
(function, logarithmic)
expression (syntactic unit)
expressions
(regular)

F

Factorial function
(unit-test function)
Factorial imperative program
Factorial logic program
Factorial numbers
Factorial relation
Factorial rewriting program
Fibonacci function
(unit-test function)
Fibonacci numbers
fold (for binary trees)
fold-left (for lists)
fold-right (for lists)
(for natural numbers)
function abstraction
function applications
(left-associativity of)
function type
(right-associativity of the)
functions (graphs of)
(mathematical)
(partial)
(that are applied to functions)
(that return functions)
(total)
functors
(that are applied to functors)
(that return functors)

G

goal
(sub-)

I

induction (mathematical)
(nested)
(structural, for natural numbers)
informatics
interpreter
(compiling an)
(interpreting an)
(self-)
interpreters (tower of)
invariant (loop)
involution
involutory
iota
isomorphism
(type)

K

knapsack problem (the)

L

lambda-abstraction
language (meta-)
(source)
(target)
lazy lists
list concatenation (right associativity of)
List.
(append)
(cons)
(hd)
(length)
(map)
(tl)
listlessness
lists
(association)
(concatenating)
(copying)
(lazy, see lazy lists)
(length of)
(linked)
(polymorphic)
loop (read-eval-print)
loop fusion

M

map (for binary trees)
(for lists)
(for streams)
(for strings)
memoization
(built-in)
microprocessor
modus ponens (computational content of the)
multiplication (function, linear)
(function, logarithmic)
Murphy's law

N

naming convention (plural)
nil
numbers (factorial)
(Fibonacci)

O

observational equivalence
OCaml
(Booleans)
(assertions)
(characters)
(comments)
(comments, exercise about writing)
(conditional expressions)
(control stack)
(formal)
(formals)
(functions)
(functors)
(global let-expression declaring one variable)
(global let-expression declaring several variables)
(global letrec-expression declaring one variable)
(global letrec-expression declaring several variables)
(identifiers)
(impure expressions)
(integers)
(local let-expression declaring one variable)
(local let-expression declaring several variables)
(local letrec-expression declaring one variable)
(local letrec-expression declaring several variables)
(match-expressions)
(modules)
(modules, nested)
(modules, signatures of)
(names)
(pairs)
(pure expressions)
(quote character)
(references)
(semicolon)
(sequencing)
(signature, declaring a)
(strings)
(tuples)
(typing judgment)
(variables)
onions
option type (polymorphic)
ormap (for binary trees)
(for lists)
overflow (buffer)
(control stack)
(runtime stack)

P

paradox
parameters (actual)
(formal)
parser
parsing
Peano numbers
Platonism
pleonasm (redundant)
polymorphic (conditional expressions)
(pairs)
(tuples)
polymorphism
(first encounter)
power (function, see exponentiation)
powerset
predicates
primitive iteration
primitive recursion
Printf.
(printf)
(sprintf)
programming (dynamic)
(functional)
(imperative)
(logic)
programming languages
(statically typed)
programs

Q

queues
(first in, first out in a module)
(first in, first out)
(in a module)
(last in, first out in a module)
(last in, first out)

R

recursion
(mutual)
(nested)
(structural, for binary trees)
(structural, for lists)
(structural, for natural numbers)
(tail)
regular expressions (abstract-syntax trees)
(BNF of)
(proof trees)
relations (binary)
representation (completeness of a)
(soundness of a)
reward (see: tail recursion)
rewriting

S

samefringe (the problem)
Scheme
(Chez)
(Petite Chez)
scope (lexical)
(shadowed bindings in lexical)
self- (compiler)
(interpreter)
semantics
semiotics
set comprehension
sets as lists
(re1visited, using an accumulator)
(re2visited, using fold-right)
(re3visited, using fold-left)
shallots
sieve (Eratosthenes's)
soundness
(of a representation)
stacks
(in a module)
stream (of even natural numbers)
(of natural numbers)
(of odd natural numbers)
(transducers)
streams
(comparing prefixes of)
(concatenating)
(filtering)
(indexing)
(mapping)
(merging)
(prefixing)
(prepending)
(reversing)
(suffixing)
String.
(get)
(get, syntactic sugar for)
(init)
(length)
(make)
(map)
(mapi)
syntactic sugar
syntax
(abstract)
(concrete)

T

tail call
tail recursion (see: reward)
test coverage
tests (regression)
(unit)
thunks
(by name)
(by need)
(by value)
(memo)
tilde notation for negative numbers
tree (abstract syntax)
(proof)
type (checking)
(inference)
type constructor (data)
types
(monomorphic)
(polymorphic)

U

unfolding (a let-expression)
unit tests (functions implementing)
(functors implementing)
unparser
unparsing
(Booleans)
(characters)
(integers)
(polymorphic binary trees)
(polymorphic lists)
(polymorphic pairs)
(polymorphic triples)
(strings)
(values)

V

value (denotable)
(expressible)
(storable)
virtual machine
Von Neumann (architecture)
«