Lambda Papers
language, eager
large transactions
large vectors
Leiningen
let, 2nd, 3rd, 4th, 5th, 6th, 7th, 8th
letfn, 2nd
lexical scope, 7th
bindings
context, 2nd
contour
environment, 2nd, 3rd
line number
line terminators
linear search
List interface
literal syntax, 2nd, 3rd, 4th, 5th
literals vs. JSON
live-lock
:load directive
local-context, 2nd, 3rd
locals, 2nd, 3rd, 4th, 5th, 6th, 7th
locks
blocking, 2nd, 3rd, 4th, 5th
contention
fairness
Java explicit locks
orphaning, 2nd
overview
reentrant
safe mutation using
striping
total ordering
unnecessary with STM
wrapping mutable objects in reference type
log-agent
logarithmic
logging, 2nd
logic programming, 2nd
logic variables
logical-and operator
longs, 2nd, 3rd
look-around clauses
lookup, 2nd, 3rd
lowercase
M literal
macroexpand
macros, 3rd, 5th, 6th, 7th, 8th
macros
macros
best practices
changing forms with
ClojureScript compiler and
combining forms
compile-time, 2nd, 3rd, 4th, 5th
contract macro example
control structures in
defining using syntax-quote/unquote
defining without syntax-quote
overview
controlling symbolic resolution time
anaphora
overview
selective name capturing
data representations and
defn form
eval, using local context for
hygienic
in Clojure overview
macro-definition time
macro-expansion time, 2nd
managing resources
returning functions
syntax-quote operation
unquote operation
unquote-splice operation
magical formula
main
make-array
make-move
make-safe-array
make-smart-array
manip-map
Map interface
MapEntries
mapped file
mapping function
math-context
Maven
max-history
McCarthy, John
memoization, 2nd
abstraction-oriented programming
BasicCache
cache
caching protocol
manipulable-memoize
memoization protocol
memoize
overview
PluggableMemoization
protocol for
memoization function
Mersenne primes
metadata, 6th, 7th, 8th
attaching
meta
for symbols
with-meta
methods, 2nd
implementations in defrecord form
namespaced methods
min-by, 2nd
min-history
MiniKanren
mini-language, 2nd
mixins
monitors, 2nd
monkey-patching, 2nd
Montoya, Inigo
Move, 2nd
multidimensional arrays
multi-line mode
multiple phase evaluation model
multiple transactions
multiversion concurrency control.
See MVCC.
mutually recursive functions
MVCC (multiversion concurrency control)
snapshot isolation
write skew, 2nd
name resolution
name shadowing, 2nd
named arguments
named functions
named structures
named vars
namespaced methods
namespaces, 13th, 14th
namespaces
namespaces
namespaces
namespaces
as class specifications
compilation
creating
create-ns function
in-ns function
ns macro, 2nd
creating mappings with :refer
declarative inclusions and exclusions
loading Java classes with :import
loading mappings with :refer
loading with :require
ns, 2nd
overview
private directories
qualification, 2nd, 3rd, 4th, 5th
remove-ns
symbols and
two-level mapping, 2nd
user
natural join
neighbors, 2nd, 3rd
nest
new
next, 2nd, 3rd, 4th, 5th, 6th
nil, 4th, 5th, 6th, 7th, 8th, 9th, 10th
false vs.
testing collections
nondeterminism
non-termination
non-thread-safe
nouns
ns macro, 2nd
ns-unmap
nth, 2nd
nthnext
null
object-oriented programming.
See OOP.
object-relational mappers.
See ORMs.
objects
obscure
Observer pattern
one-at-a-time realization
:only directive
open-world principle
operator precedence, 2nd
optimization of pure functions
optimizations, 2nd, 3rd
option flags
or (logical)
original map
ORMs (object-relational mappers)
parallelism, 2nd, 3rd
parameters, closing over
parentheses, 2nd
parents
partial functions
Patriot missile
pattern matching, 2nd
pcalls function, 2nd, 3rd
peek, 2nd, 3rd, 4th
performance, 2nd
chunked sequences
lazy sequences
overview
coercion
overview
using auto-promotion
using primitive double
using primitive long
measurements
memoization
abstraction-oriented programming
overview
protocol for
reducibles
advantages of
collection example
disadvantages of
integrating with Clojure reduce
overview
reducible transformers
reducing function transformers
reducing in parallel with fold function
transients
defined
garbage collection
mutable collections vs.
type hints
advantages of
for arguments
for objects
overview
for returns
Perl (programming language)
persistent data structures, 2nd, 3rd, 4th, 5th, 6th, 7th
persistent hash trie
pixel
PLOP (place-oriented programming)
pmap function, 2nd
polling
polymorphism, 2nd, 3rd, 4th, 5th, 6th, 7th
pool
pop, 2nd, 3rd
population of sets
pos
positionally
:post directive
postconditions, 2nd, 3rd
potential equality
pow
:pre directive
precedence in Clojure
precision of scalar types
arbitrary precision
overflow
promotion
rounding errors
truncation
underflow
preconditions, 2nd, 3rd
predestination analogy
predicates, 2nd, 3rd
prefix notation, 2nd
primitive arrays
primitive double
primitive long
primitive vectors
primitives, 2nd, 3rd, 4th
println, 2nd, 3rd, 4th
print-method
:private directive
private directories in namespaces
programmer efficiency
Prolog language
promotion, scalar types precision
properties of sets
protocols, 2nd, 8th
design of
method implementations in defrecord form
namespaced methods
overview
reify macro
sharing method implementations
Prototype Principle
prototyping
pure virtual classes
purely functional
push
put function
pvalues function, 2nd
Python (programming language), 2nd, 3rd, 4th
RandomAccess interface
range, 2nd, 3rd, 4th, 5th, 6th, 7th
RDL (rectangle definition language)
read
Read-Eval-Print Loop.
See REPL.
read-time
realize? function
recompiled
rectangle definition language.
See RDL.
recur form, 2nd, 3rd, 4th
reduce function, 2nd, 3rd, 4th, 5th
:refer-clojure directive
reference arrays
reference types, 2nd, 3rd, 5th
add-watch, 2nd
agents
controlling I/O with
error handling
in-process vs. distributed concurrency models
overview
send vs. send-off operations
when to avoid
atoms
memoize function
overview
sharing across threads
using in transactions
avoiding stress on
commute operation
coordinated, 2nd
dependent transactions
embedded transactions
locks
Java explicit locks
overview
safe mutation using
wrapping mutable objects in reference type
mutable game board example
overview
ref-set operation
remove-watch
set-validator
STM
ACID properties
consistent information
disadvantages
I/O operations
large transactions
live-lock
locks unnecessary
object mutation
write skew
synchronous, 2nd, 3rd, 4th
transactions
uncoordinated
uniform state change model
vars
binding macro
creating anonymous
creating named
dynamic scope of
overview
referential transparency
reflection
ref-set operation
regular expressions, 2nd
case insensitivity
functions
mutable matchers
overview
re-find
regex
re-groups
reluctant quantifiers
re-matcher
re-seq
syntax
reify macro, 2nd, 3rd, 4th, 5th
relational algebra functions
relational functions
relational logic programming
relations
remainder
remote-procedure call.
See RPC.
rename
reordering
REPL (Read-Eval-Print Loop), 6th, 7th, 8th, 9th, 10th, 11th, 12th
experimenting with graphics
experimenting with seqs
overriding evaluator
overriding reader
viewing exception variable
xors function
replace
:require directive, 2nd, 3rd
require-macros directive
reset
resolution of symbols
resources, managing in macros
rest, 2nd, 3rd, 4th, 5th, 6th, 7th
return values
higher-order functions as
type hints for
reusability
reverse function, 2nd
root cause
rounding error
RPC (remote-procedure call), 2nd
rseq, 2nd
RSS feeds
rsubseq
Ruby (programming language), 2nd, 3rd
rules of axioms
run* command
Runnable interface
run-time and closures
runtime exceptions
Scala (programming language), 2nd, 3rd, 4th, 5th
Scheme (programming language), 2nd
selective name capturing
self
semantic coupling
semicolon ( ; )
send operation
send-off operation
separation of concerns
in Clojure
fluent builder for chess moves example
sequence abstraction
sequentials, 2nd
server
Set interface
setter
shared-state concurrency
short, 2nd
shuffle
side effects, 2nd, 3rd, 4th, 5th, 6th, 7th
simplicity of Clojure, 2nd
Simulant library
simulation testing, 2nd
single quote ( ' )
sleep, 2nd
slice
Sliceable
sliceCount
slope function, 2nd
snapshot, 2nd
software transactional memory.
See STM.
sort, 2nd
sort-by
sorted maps
sorted sets
sorted-map-by, 2nd
sorted-set-by
sort-parts
special form, 2nd, 3rd
split
spot optimizations
spreadsheets, 2nd, 3rd
SQL (Structured Query Language)
sqr
stack overflow, 2nd
stack trace
state, 2nd, 3rd, 4th, 5th, 6th, 7th, 8th
static class members
static type system
static vs. dynamic
Steele, Guy Lewis, 2nd
STM (software transactional memory), 17th, 18th
ACID properties
barging
commit, 2nd
commit-time
consistent information
disadvantages
I/O operations
in-transaction
large transactions
live-lock
locks unnecessary
object mutation
retry
write skew
straight-line path
Strategy pattern
stress
:strs directive
structural sharing
Structured Query Language.
See SQL.
stubbing
subgoals
subseq, 2nd
substitution
subtyping in OOP
subvectors
Sussman, Gerald
Swank-Clojure
swap, 2nd
Swing, 2nd
syntax, 2nd
blocks
exceptions
functions
anonymous functions
calling
in-place functions
named
with multiple arities
host libraries, accessing
.. macro
creating instances
defining classes
doto macro
instance members
setting instance fields
static class members
keywords
as directives
as enumerations
as functions
as keys
as multimethod dispatch values
overview
qualifying
locals
loops
loop form
recur form
tail position
macros
multiple phase evaluation model
namespaces
creating mappings with :refer
creating using ns
loading Java classes with :import
loading mappings with :refer
loading with :require
no precedence rules
parentheses
quoting
automatically-generated symbols
evaluation and
overview
symbol auto-qualification
syntax-quote
unquote
unquote-splicing
regular expressions
functions
mutable matchers
overview
syntax
symbols
Lisp-1
metadata for
namespaces and
resolution of
syntactic sugar
var
tail-call recursion
generalized tail-call optimization
overview
purpose of
TCO.
See generalized tail-call optimization.
TDD (test-driven development), 2nd, 3rd, 4th, 5th
term, defined
terminating condition
terminology for Clojure
:test directives
test-driven development.
See TDD.
third-party libraries, 2nd, 3rd
this, 2nd, 3rd, 4th
thread safety, 2nd
thread-bound
thread-local bindings, 2nd, 3rd
threads, 2nd, 3rd, 4th, 5th, 6th, 7th, 8th
thread-safe, 2nd
throw form
time, 2nd, 3rd
timelines, 2nd
to-array
to-array-2d
toString
trampoline
transactions, 2nd
atoms in
embedded transactions
large
reference types and
dependent transactions
embedded transactions
overview
retry, 2nd, 3rd, 4th
size of
transformer constructor
transients, 2nd
defined
garbage collection
mutable collections vs.
Rule of Transients
TreeNode, 2nd, 3rd, 4th
triangle
truncation
tuples
tweet-items
tweetless-feed-children
tweet-occurrences
Twitter
two-way pattern matching
type conversion, automatic
type hints, 7th
advantages of
for arguments
for objects
overview
for returns
types, 2nd, 3rd, 4th
UI design
unchecked
underflow
underscores
Unicode
union function
unit conversions example
unit testing, 3rd
clojure.test as specification
defined
using with-redefs
Universal Design Pattern.
See UDP.
Unix line terminator
unmodifiable
up-arrow key
update-in
uppercase
:use directive, 2nd
UUID tagged literal
validation, 2nd
variable arguments
variables, 2nd, 3rd
variadic methods
verbosity, 2nd
verbs
visible
Visitor pattern
volatile
Web Audio API
webkitAudioContext property
when, 2nd, 3rd, 4th, 5th
when-let, 2nd
when-not
where-am-i
while
Whitehead, Alfred North
whitespace, ignoring
with-binding
with-open, 2nd, 3rd
with-out-str
with-precision
with-redefs
with-resource
workflow
wrapping
write skew
write-once
xconj, 2nd, 3rd, 4th
XML (Extensible Markup Language), 2nd
xors function, 2nd
xs
xseq