[SYMBOL][A][B][C][D][E][F][G][H][I][J][K][L][M][N][O][P][Q][R][S][T][U][V][W][X][Y]
_ (underscore)
- (hyphen)
, (comma)
; (semicolon)
: (colon)
!= operator
. (dot) operator
.. macro
' (single quote)
“ (double-quotes)
( ) parentheses, 2nd
(backslash)
& (ampersand), 2nd
# (hash symbol)
A* pathfinding
astar
candidate paths
cost-estimate function
implementation
neighbors in
overview
path-finding
world in
Abstract Factory pattern
abstract syntax tree.
See AST.
abstraction-oriented programming, 2nd, 3rd, 4th, 5th, 6th, 7th
abstractions, 2nd, 3rd, 4th, 5th, 6th
accessor methods, 2nd
ACID properties
ad-hoc hierarchies, 2nd, 3rd, 6th
derivation hierarchy
make-hierarchy
adornment
agents, 2nd, 3rd, 20th
agent-error
await, 2nd
await-for
controlling I/O with
error handling
:continue mode
:fail mode
in-process vs. distributed concurrency models
overview
queue, 2nd
restart-agent
send vs. send-off operations
serialize access
when to avoid
agile, 2nd
Ahead of Time Compilation.
See AOT.
algorithm
alias
ampersand (&), 2nd
ancestors
and (logical), 2nd
anonymous functions
anonymous inner classes
anonymous vars
AOT (Ahead of Time Compilation), 2nd, 3rd
Apache Ant, 2nd
API (Application Programming Interface), 2nd, 3rd
Apple Safari
apply, 2nd
aquarium
Arc (programming language)
arglists
arguments
higher-order functions as
named
type hints for
arities, functions with multiple
array maps
arrays, 2nd, 3rd
amap
areduce
multidimensional
mutability of
naming convention for
primitive
reference
seq of array
variadic methods
:as directive, 2nd, 3rd, 4th
as-futures, 2nd
as-is
aspects
assertions, 2nd, 3rd
assoc
associative
associative destructuring
assoc-in
AST (abstract syntax tree)
asum-sq, 2nd
asynchronous, 2nd
Atom feeds
atomicity, 2nd
atoms, 2nd
compare-and-set!
memoize function
overview
sharing across threads
using in transactions
auto-gensym
automatically-generated symbols
auto-promotion, coercion using
auto-qualification of symbols
backslash
beget function
benchmark
best practices
best-case
best-first
BigDecimal
Big-O notation
algorithmic complexity
asymptotic complexity, 2nd
linear time
logarithmic complexity
binding, 2nd
binding macro
bit-xor
blocking calls, using promises
blocks, 2nd
boilerplate, 2nd
bot object
bound
breakpoint macro
creating
implementing
multiple breakpoints
brute-force searching
build-contract, 2nd
Builder pattern
build-move
bytecode, 2nd, 3rd, 4th
bytes, 2nd
C (programming language), 2nd, 3rd, 4th
calculations, precise
call stack
Callable interface
callbacks, 2nd
call-by-need
calling functions
canvas
capitalize
capturing group
car, 2nd
case
catch form
cent
chaining
change-message, 2nd
char
chars
chess, 2nd, 3rd, 4th
choose-move
clarity
classes
accessing static members
defining
importing Java
instances
accessing members
creating
namespaces as class specifications
clear
clear-actions
cljsbuild plug-in
clojure.contrib.json
clojure.contrib.repl-utils
clojure.core namespace, 2nd, 3rd, 4th
clojure.core.logic library
including in project
relations
subgoals
unification and
clojure.core.set namespace
clojure.data.generators library
clojure.edn namespace
clojure.lang.IPersistentStack
clojure.lang.PersistentQueue/EMPTY
clojure.main/repl
clojure.set namespace, 2nd, 3rd, 4th
clojure.string
clojure.test namespace, 2nd, 3rd
clojure.test.generative library
clojure.test/run-tests
clojure.xml, 2nd, 3rd
clojure.xml/parse
clojure.zip, 2nd, 3rd
ClojureScript
Clojure vs.
compiler
compilation stages
generating externs.js file
macros and
using Closure compiler
Web Audio
CLOS (Common Lisp Object System)
closed-world principle
Closure compiler
coercion
overview
using auto-promotion
using primitive double
using primitive long
collect-bodies
Collection interface
CollFold interface
CollReduce interface, 2nd
colon
columns
comma as whitespace
commenting, 2nd
commits
Common Lisp (programming language), 6th
cdr, 2nd
CLOS
funcall
Lisp-2
Common Lisp Object System.
See CLOS.
commute operation
comp, 2nd
Comparable interface
comparator
Comparator interface
compare-and-swap
compiler, Clojure, 2nd, 3rd, 4th, 5th
compiler, ClojureScript
compilation stages
generating externs.js file
macros and
using Closure compiler
Compiler.java
compile-time
closures and
exceptions at
complement function, 2nd
concat
concrescence
concrete classes, 2nd, 3rd, 4th
concrete realization
concurrency, 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
concurrent modification, 2nd
concurrent modification errors
locks
Java explicit locks
overview
safe mutation using
wrapping mutable objects in reference type
lost wakeup
parallelism vs.
priority inversion
reference types
avoiding stress on
commute operation
dependent transactions
embedded transactions
mutable game board example
overview
ref-set operation
transactions
STM
ACID properties
consistent information
disadvantages
I/O operations
large transactions
live-lock
locks unnecessary
object mutation
write skew
vars
binding macro
creating anonymous
creating named
dynamic scope of
overview
cond, 2nd
confounding
conj, 2nd, 3rd, 4th, 5th
cons, 2nd
consistency, 3rd, 5th
in Clojure
reporting problem
constant time
constructors, 2nd, 3rd, 4th
contains? function, 2nd, 3rd
continuation-passing style (CPS), 2nd
continuations, 2nd, 3rd
:continue mode
contrib, 2nd
control structures, 2nd
defining using syntax-quote/unquote
defining without syntax-quote
overview
coordination, 2nd
copies, defensive
count method
counted
Counted interface
counter-optimizations
countFrom method
count-tweet-text-task, 2nd
CPS.
See continuation-passing style (CPS).
create-ns function
crypto
curried function
database
deadlock, 2nd, 3rd, 4th
deterministic
using promises
decimal
declarative, 2nd, 3rd
decoupling assertions from functions
def, 2nd, 3rd, 4th, 5th
default-handler
defformula form
definterface form
defmacro form, 2nd, 3rd
defmulti form, 2nd
defn form, 2nd, 3rd, 4th, 5th, 6th
defonce form
defprotocol form
defrecord form, 2nd
defstruct form, 2nd
deftype form
def-watched
delay macro, 2nd, 3rd
delay objects
delegate, 2nd
dependency injection
dependent transactions
deref, 2nd, 3rd
derived state
descendants
destructuring, 9th, 10th, 11th, 12th
accessor methods vs.
associative destructuring
in function parameters
with map
nested
problem solved by
with vector
determinacy
difference function
directives, 2nd, 3rd
directory structure
disappear
dispatch
dissoc, 2nd, 3rd
distributed concurrency model
distributive
do, 2nd
doall
documentation, viewing
domain-specific language (DSL).
See DSL.
DOP.
See data-oriented programming.
doseq, 2nd, 3rd
dosync, 2nd
dot ( . ) operator
dothreads!, 2nd
doto macro
double-array
double-backslash
double-quotes
doubles, 2nd, 3rd, 4th
do-until
drawing
DSL (domain-specific language), 2nd, 3rd, 4th
Clojure approach to
creating
defined
domain expertise
SQL example
duck typing
dummy write
durability
DynaFrame.clj
dynamic scope, 2nd, 3rd
dynamic tree traversal
dynamic type systems, 2nd
EDN (Extensible Data Notation)
elegance, 2nd
embedded transactions
empowerment
empty list
empty queue instance
empty sequence
empty?
encapsulation
block-level encapsulation
local encapsulation
namespace encapsulation
in OOP
Enlive
enumeration values
enumerator
env
&env argument
ephemeral
equality, 2nd, 7th
equality partitions, 2nd, 3rd
equality semantics
immutability and
Erlang (programming language)
Actor model, 2nd
in-process vs. distributed concurrency models
share-nothing
essential state
events
as data
event-sourced model
:exclude directive, 2nd
expected case
experimentation
expression problem
expressive nature of Clojure
extend, 2nd, 3rd, 4th
extend-protocol, 2nd
extend-type, 2nd
Extensible Data Notation.
See EDN.
Extensible Markup Language.
See XML.
Façade pattern
:fail mode
Fantom (programming language)
feed-children
fence post errors
filter, 2nd, 3rd, 4th
find-doc
find-ns
finger trees
finite state machines
First In, First Out (FIFO), 2nd
First In, Last Out (FILO)
first-class functions
complement function
creating on demand using composition
creating on demand using partial functions
overview
using as data
fixed-size pool
FIXO, 4th
fixo-peek
fixo-push, 2nd, 3rd
flexibility
fn, 2nd, 3rd, 4th, 5th
fold function
overview
reducing in parallel with
for, 2nd
force macro, 2nd
forever
free variables
freedom to focus
Frink (programming language)
fully qualified
Gang of Four
garbage collection, 2nd, 3rd
gcd
GClosure compiler
gen-class function, 4th
namespaces as class specifications
UI design and
generalized tail-call optimization, 2nd, 3rd
generic
genotype
gensym
get function, 2nd, 3rd, 4th, 5th
get-in
getter
global hierarchy map
goal constructor
Google Chrome
Graham, Paul
graphical user interface.
See GUI.
graphics context
greatest common denominator, 2nd
green thread
Greenspun's Tenth Rule
Groovy (programming language)
ground terms
GUI (graphical user interface), 2nd
Halloway, Stuart, 2nd
hash symbol ( # )
hash-map, 2nd, 3rd, 4th
Haskell (programming language), 2nd, 3rd, 4th
Template Haskell
typeclasses, 2nd
heuristic
Hibernate
Hickey, Rich
homoiconicity, 2nd
hooks
hops
html-around
hyphens
ICounted protocol
idempotent, 2nd
identical?
identifiers
identity, 2nd, 3rd, 4th, 5th, 6th, 7th, 8th
IDEs (integrated development environments)
if, 2nd, 3rd
if-let, 2nd
IFn protocol
image, 2nd
immutability, 2nd, 3rd, 4th, 5th, 15th, 16th, 17th
in Clojure
equality and
invariants
mutable references and
predestination analogy
sharing references
simplifies possible states of object
structural sharing
thread safety
imperative programming, 2nd, 3rd
implementation details
implicit do
:import directive, 2nd
inconsistency
index numbers
infinite lazy range
infinite loop
infinite sequence, 2nd, 3rd
infix notation
inheritance
differential
implementation inheritance
inherited behaviors
interface inheritance
prototype chain, 2nd
prototype maps, 2nd
init
in-ns function
in-place functions
in-process programming model
inst tag parser
int, 2nd
integrated development environments.
See IDEs.
interactive command prompt
interface-oriented programming
interfaces, 2nd, 3rd, 4th, 5th, 6th, 7th
intern, 2nd
internal reduce
interoperability, 6th, 7th, 8th, 9th, 10th, 11th, 12th
accessing Java instance members
accessing static class members
creating Java class instances
setting Java instance properties
intersection function
into, 2nd, 3rd
into-array, 2nd
invariants, 2nd, 3rd
inversion of control
invoke
Io (programming language)
isa?
ISeq interface
ISeqable interface
ISliceable interface
isolation
iteration
iterator, 2nd
Iterator pattern
Jahad, George
jar files
Java Virtual Machine (JVM), 2nd, 3rd, 4th, 5th, 6th, 7th, 8th
java.awt
java.awt.Container
java.awt.Frame
java.io.FilterOutputStream
java.io.OutputStream
java.lang, 2nd
java.lang.Comparable interface
java.lang.Iterable
java.lang.Object, 2nd, 3rd, 4th
java.lang.Runnable interface, 2nd
java.lang.StackOverflowError, 2nd
java.lang.String, 2nd
java.lang.StringBuilder
java.lang.Thread
java.util.ArrayList
java.util.Collection interface, 2nd
java.util.Comparator interface
java.util.concurrent
java.util.concurrent.atomic.AtomicInteger
java.util.concurrent.Blocking-Queue
java.util.concurrent.Callable interface, 2nd
java.util.concurrent.FutureTask
java.util.concurrent.locks
java.util.concurrent.locks.ReentrantLock
java.util.concurrent.locks.ReentrantReadWriteLock
java.util.List interface, 2nd, 3rd, 4th
java.util.Map interface
java.util.RandomAccess interface, 2nd
java.util.regex.Matcher, 2nd
java.util.regex.Pattern
java.util.Set interface
javadoc, 2nd
JavaScript (programming language), 2nd, 3rd
JavaScript Object Notation.
See JSON.
Jess (programming language)
JIT (just-in-time)
JRuby (programming language)
js (namespace), 2nd
JSON (JavaScript Object Notation)
just-in-time.
See JIT.
juxt
JVM.
See Java Virtual Machine.
Jython (programming language)
kapow
keep-indexed
key, 2nd, 3rd, 4th
keys-apply
keywords, 12th
arguments
as directives
as enumerations
as functions
as keys
as multimethod dispatch values
overview
plumbing, separating from domain
qualified
scalar type
ubiquity of
Kingdom of Nouns
Korma