Index
A
- abstract syntax tree / Modifying code in Groovy
- agents
- about / Agents
- validators / Validators
- watchers / Watchers
- associative destructuring
- about / Associative destructuring
- atoms
- about / Atoms
C
- channels
- about / Why lightweight threads?, Channels
- classloader
- classpath
- Clojure
- about / Getting to know Clojure, The Clojure model of state and identity
- code / Getting started with Clojure code and data
- data / Getting started with Clojure code and data
- lists / Lists in Clojure
- operations / Operations in Clojure
- functions / Functions in Clojure
- data types / Clojure's data types
- testing in / Testing in Clojure
- destructuring / Destructuring in Clojure
- types of collections / Types of collections in Clojure
- sequence abstraction / The sequence abstraction
- specific collection types / Specific collection types in Clojure
- identity / The Clojure model of state and identity
- state / The Clojure model of state and identity
- Clojure interop syntax
- about / Clojure interop syntax
- object, creating / Creating an object
- instance method, calling / Calling an instance method
- static method, calling / Calling a static method or function
- static function, calling / Calling a static method or function
- inner classes, accessing / Accessing inner classes
- simple image namespace, writing / Writing a simple image namespace
- code
- exposing, to Java / Exposing your code to Java
- code, modifying in Groovy
- about / Modifying code in Groovy
- @ToString annotation / The @ToString annotation
- @TupleConstructor annotation / The @TupleConstructor annotation
- @Slf4j annotation / The @Slf4j annotation
- cons function / The sequence abstraction
- core.async
- about / core.async
- lightweight threads / Why lightweight threads?
- goblocks / Goblocks
- channels / Channels
- transducers / Transducers
- core.async library / Macros in the real world
- core.typed library / Macros in the real world
- Cursive Clojure
- using / Using Cursive Clojure
- plugins / Using Cursive Clojure
- installing / Installing Cursive Clojure
D
- data types, Clojure
- about / Clojure's data types
- scalars / Scalars
- collection data types / Collection data types
- destructuring
- about / Destructuring in Clojure
- sequential destructuring / Destructuring in Clojure
- associative destructuring / Destructuring in Clojure
- distinct function / The sequence abstraction
F
- first function / The sequence abstraction
- first level citizens / The functional paradigm
- functional programming
- about / Basics of functional programming
- applying, to collections / Applying functional programming to collections
- imperative programming model / The imperative programming model
- functional paradigm / The functional paradigm
- immutability / Functional programming and immutability
- laziness / Laziness
- functions, Clojure
- about / Functions in Clojure
- functions, using with channels
- futures
- using / Futures
G
- goblocks
- about / Why lightweight threads?, Goblocks
- Groovy
- testing from / Testing from Groovy
H
- hash maps
- about / Sorted maps and hash maps
- Hello threaded world
- about / Using your Java knowledge
- higher order functions / The functional paradigm
I
- identity
- ImageScalr javadoc
- reference / Writing a simple image namespace
- IntelliJ
J
- Java
- about / Using your Java knowledge
- java.lang.Thread
- about / Using your Java knowledge
- jcenter / Using Maven dependencies
- jdeferred
- reference / Promises
K
- keyword hierarchies, multimethods
- isa function / isa?
- parent function / parents
- descendants function / descendants
- underive function / underive
L
- la carte dispatch functions
- about / A la carte dispatch functions
- Leiningen
- installing / Installing Leiningen
- wiki URL / Installing Leiningen
- URL / Installing Leiningen
- Let over Lambda
- reference / References
- let statement
- about / The let statement
- lightweight threads
- about / Why lightweight threads?
- Lisp
- about / Lisp's foundational ideas
- foundational ideas / Lisp's foundational ideas
- lists
- lists, Clojure
- about / Lists in Clojure
M
- macro
- writing / Writing your first macro
- debugging / Debugging your first macro
- quoting / Quote, syntax quote, and unquoting
- syntax quote / Quote, syntax quote, and unquoting
- unquoting / Quote, syntax quote, and unquoting
- unquote splicing / Unquote splicing
- gensym function / gensym
- in real world / Macros in the real world
- macros, as code modification tools
- about / Macros as code modification tools
- code, modifying in Java / Modifying code in Java
- code, modifying in Groovy / Modifying code in Groovy
- map function / The sequence abstraction
- maps
- about / Maps
- Mastering Clojure Macros
- reference / References
- Maven Central
- URL / Using Maven dependencies
- maven dependencies
- using / Using Maven dependencies
- multimethods
- about / Multimethods in Clojure
- keyword hierarchies / Keyword hierarchies
- la carte dispatch functions / A la carte dispatch functions
- multiversion concurrency control (MVCC)
N
- namespaces
- about / Namespaces in Clojure, Back to Clojure namespaces
- playing with / Playing with namespaces
- creating / Creating a new namespace
- working, with on REPL / Working with namespaces on the REPL
O
- operations, Clojure
- about / Operations in Clojure
P
- packages
- about / Packages in Clojure
- java.lang / Packages in Clojure
- java.io / Packages in Clojure
- java.util / Packages in Clojure
- java.util.logging / Packages in Clojure
- java.text / Packages in Clojure
- javax.servlet / Packages in Clojure
- persistent collections
- about / Persistent collections
- polymorphism
- using, in Java / Polymorphism in Java
- project structure, REPL
- resources folder / Project structure
- src folder / Project structure
- dev-resources folder / Project structure
- test folder / Project structure
- promises
- about / Promises
- pulsar thread / Pulsar and lightweight threads
- lightweight thread / Pulsar and lightweight threads
- protocols
- about / Protocols in Clojure
- proxy
- about / Proxy and reify
- Pulsar
- reference / Pulsar and lightweight threads
Q
- Quasar
- reference / Pulsar and lightweight threads
R
- records
- about / Records in Clojure
- reify
- about / Proxy and reify
- REPL
- using / Using a REPL
- about / Using a REPL
- nREPL protocol / The nREPL protocol
- Hello world / Hello world
- utilities / REPL utilities and conventions
- conventions / REPL utilities and conventions, Creating a new project
- project structure / Project structure
- standalone app, creating / Creating a standalone app
- rest function / The sequence abstraction
S
- @Slf4j annotation
- about / The @Slf4j annotation
- sequence abstraction
- about / The sequence abstraction
- sequential destructuring
- about / Sequential destructuring
- sets
- about / Sets
- hash-sets / Sorted sets and hash sets
- sorted-sets / Sorted sets and hash sets
- common properties / Common properties
- union / Union, difference, and intersection
- difference / Union, difference, and intersection
- intersection / Union, difference, and intersection
- software transactional memory (STM)
- sorted maps
- about / Sorted maps and hash maps
- span-thread / Pulsar and lightweight threads
- spawn-fiber / Pulsar and lightweight threads
- specific collection types, Clojure
- about / Specific collection types in Clojure
- vectors / Vectors
- vector, using as function / Vectors
- nth function / Vectors
- get function / Vectors
- lists / Lists
- maps / Maps
- hash maps / Sorted maps and hash maps
- sorted maps / Sorted maps and hash maps
- common properties / Common properties
- sets / Sets
- functional programming, applying to collections / Applying functional programming to collections
- standalone app
- creating / Creating a standalone app
- state
T
- @ToString annotation
- about / The @ToString annotation
- @TupleConstructor annotation
- about / The @TupleConstructor annotation
- take function / The sequence abstraction
- testing
- about / Testing in Clojure
- from command line / Testing from the command line
- in IntelliJ / Testing in IntelliJ
- tests
- writing / Writing the tests
- types of collections, Clojure
- about / Types of collections in Clojure
- counted collection / Types of collections in Clojure
- sequential collection / Types of collections in Clojure
- associative collections / Types of collections in Clojure
U
- unquote splicing
- about / Unquote splicing
V
- varargs / Creating a new namespace
- variadic functions / Creating a new namespace
- vectors
Y
- yesql library / Macros in the real world