Index
A
- *access-token key / Using the are macro
- *action form key / Formative
- -as key / Destructuring
- agents / Agents
- alignment / Spacing and alignment
- alter-var-root form / Variables
- anonymous function / Anonymous functions
- AOT
- Apache Cassandra / Database domains
- Apache CouchDB
- URL / Database domains
- are macro / Using the are macro
- arithmetic operations
- about / Arithmetic
- addition / Addition and subtraction
- substraction / Addition and subtraction
- multiplication / Multiplication
- divivsion / Division
- rem form / Remainder and modulus
- mod form / Remainder and modulus
- inc form / Increment and decrement
- dec form / Increment and decrement
- min form / Greatest and least values
- max form / Greatest and least values
- equality / Equality
- array-map form / Maps by example
- assoc form / Collections by example
- associative? form / Collections by example
- atom / Atoms
- audio domain
- about / The Audio domain
- Music-as-data / The Audio domain, Music-as-data
- overtone / Overtone
B
- Buffer window manipulation commands
- C-x 3 / Creating and editing CLJ files in Emacs
- C-x 2 / Creating and editing CLJ files in Emacs
- C-x 1 / Creating and editing CLJ files in Emacs
- C-x 0 / Creating and editing CLJ files in Emacs
- C-x k / Creating and editing CLJ files in Emacs
- C-x o / Creating and editing CLJ files in Emacs
- C-x C-c / Creating and editing CLJ files in Emacs
- C-x left / Creating and editing CLJ files in Emacs
- C-x right / Creating and editing CLJ files in Emacs
- builder function / Overtone
- ~/bin directory / Installing Leiningen and starting a project
C
- - character / Data hiding
- C-a command / Creating and editing CLJ files in Emacs
- C-c C-b command / Testing the setup
- C-c C-d command / Testing the setup
- C-c C-e command / Testing the setup
- C-c C-j command / Testing the setup
- C-c C-k command / Testing the setup
- C-c C-l command / Testing the setup
- C-c C-n command / Testing the setup
- C-c C-r command / Testing the setup
- C-c C-u command / Testing the setup
- C-e command / Creating and editing CLJ files in Emacs
- C-j command / Testing the setup
- C-k command / Creating and editing CLJ files in Emacs
- C-o command / Creating and editing CLJ files in Emacs
- C-RET command / Testing the setup
- C-SPC command / Creating and editing CLJ files in Emacs
- C-up or C-down command / Testing the setup
- C-w command / Creating and editing CLJ files in Emacs
- C-x 0 command / Creating and editing CLJ files in Emacs
- C-x 1 command / Creating and editing CLJ files in Emacs
- C-x 2 command / Creating and editing CLJ files in Emacs
- C-x 3 command / Creating and editing CLJ files in Emacs
- C-x C-c command / Creating and editing CLJ files in Emacs
- C-x C-f command / Creating and editing CLJ files in Emacs
- C-x C-s command / Creating and editing CLJ files in Emacs
- C-x C-w command / Creating and editing CLJ files in Emacs
- C-x C-z command / Testing the setup
- C-x k command / Creating and editing CLJ files in Emacs
- C-x left command / Creating and editing CLJ files in Emacs
- C-x o command / Creating and editing CLJ files in Emacs
- C-x right command / Creating and editing CLJ files in Emacs
- C-Y command / Creating and editing CLJ files in Emacs
- case form / Syntax
- casting
- about / Casting
- CLJ files
- creating, in Emacs / Creating and editing CLJ files in Emacs
- Clojure
- writing / Writing Clojure
- name conventions / Name conventions
- Lists / Lists
- PersistentArrayMap / Maps
- PersistentHashMap / Maps
- variables / Variables
- transient / Transients
- transient / Transients
- atom / Atoms
- agents / Agents
- Refs / Refs
- Futures / Futures
- Promise / Promises
- Java wrapping / Java-wrapping your Clojure
- clojure.java.jdbc / Database domains
- clojure.test framework / Using the is macro
- exploring / Exploring the clojure.test framework
- tdsl.core, testing / Testing tdsl.core
- is macro, using / Using the is macro
- are macro, using / Using the are macro
- final test, developing / Developing the final test
- Clojure Buffer Commands
- C-c C-l / Testing the setup
- C-c C-e / Testing the setup
- C-c C-r / Testing the setup
- C-c C-b / Testing the setup
- C-c M-n / Testing the setup
- C-c C-k / Testing the setup
- C-c C-d / Testing the setup
- C-c C-j / Testing the setup
- Clojure collection
- about / Collections
- concurrency model / Collections
- creating / Collections by example
- Clojure collections
- destructuring / Destructuring
- Clojure function / Functions and arity
- Clojure librarary
- about / Clojure libraries
- characteristic / The characteristics of a Clojure library
- current state / The current state of Clojure libraries
- Clojure namespace / Namespaces
- Clojure objects
- immutability / Immutability
- Clojure REPL, running in Emacs
- nrepl.el Emacs extension / The nrepl.el Emacs extension
- ClojureScript
- about / ClojureScript
- comparing, with JavaScript / Comparing ClojureScript and JavaScript
- Clojure sequences
- about / Sequences
- seq? form, using / Sequences by example
- range form, using / Sequences by example
- interleave form / Sequences by example
- parse form / Sequences by example
- iterator-seq form / Sequences by example
- manipulating / Sequences by example
- partition-all form / Sequences by example
- filter form / Sequences by example
- for form, using / Sequences by example
- doseq form, using / Sequences by example
- reductions form, using / Sequences by example
- doall form / Sequences by example
- dorun form / Sequences by example
- Clojure vector
- about / Vectors
- creating / Vectors by example, Lists by example
- Clojurewerkz / The current state of Clojure libraries
- Clostache / Clostache
- Cloujure
- object, comparing / Object comparison
- common editing Commands
- C-a / Creating and editing CLJ files in Emacs
- C-e / Creating and editing CLJ files in Emacs
- C-k / Creating and editing CLJ files in Emacs
- C-o / Creating and editing CLJ files in Emacs
- C-SPC / Creating and editing CLJ files in Emacs
- M-w / Creating and editing CLJ files in Emacs
- C-w / Creating and editing CLJ files in Emacs
- C-y / Creating and editing CLJ files in Emacs
- compare-and-set! form / Atoms
- complement / Syntax
- cond form / Syntax
- condp form / Syntax
- config function / Reading the Twitter configuration
- ConfigurationBuilder class / Making our most important macro
- conj form / Lists by example
- ~@ characters / Macros
- ~ character / Macros
D
- -doc key / Metadata
- database domain
- about / Database domains
- language, structuring / Database domains
- days-later function / Making Java objects easier to manipulate
- dec form / Increment and decrement
- declare form / Variables
- defn form / Functions and arity
- deftwitter macro
- building / Building the deftwitter macro
- deliver form / Promises
- describe macro / Using the describe, it, should, and should= macros
- destroyStatus method / Tweet macros and functions
- dissoc form / Maps by example
- distinct? form / Collections by example
- doall form / Sequences by example
- dorun form / Sequences by example
- doseq form / Sequences by example, Transients
- DRY / DRY
- DSL
- about / Domain-specific languages (DSL)
- limited scope / Limited scope
- syntax / Syntax
- using / Using a DSL
- language and domain / A contract between language and domain
- trust / The language of trust
- internal DSL / Internal versus External DSLs
- external DSL / Internal versus External DSLs
- dynamic Clojure objects / Dynamic objects
E
- ECMA / JavaScript domain
- ClojureScript / ClojureScript
- ClojureScript, comparing with JavaScript / Comparing ClojureScript and JavaScript
- Emacs
- origin / The origin of Emacs and its usage
- setting up / Setting up Emacs
- CLJ files, editing in / Creating and editing CLJ files in Emacs
- CLJ files, creating in / Creating and editing CLJ files in Emacs
- Clojure REPL, running inside / Running a Clojure REPL inside Emacs
- Emacs24
- installing / Installing and setting up Emacs24
- setting up / Installing and setting up Emacs24
- empty? form / Collections by example
- empty form / Collections by example
- ensure form / Refs
- enumeration-seq form / Sequences by example
- equality / Equality
- error handling
- about / Error handling
- every? form / Collections by example
- ExampleClass class / Java-wrapping your Clojure
- expectations Framework
- search testing / Search testing
- expectations framework
- about / The expectations framework, Using the expect macro
- expect macro, using / Using the expect macro
- search testing / Search testing
- expect macro / Using the expect macro, Search testing
- external DSL
- about / External DSLs
F
- (flatten) function / Overtone
- favorite? function / Tweet macros and functions
- file-seq form / Sequences by example
- File manipulation commands
- C-x C-w / Creating and editing CLJ files in Emacs
- C-x C-s / Creating and editing CLJ files in Emacs
- C-x C-f / Creating and editing CLJ files in Emacs
- filter form / Sequences by example
- flow control
- about / Flow control
- for form / Sequences by example
- formative / Formative
- frame-rate function / Image domains
- from-query macro / Search testing
- function
- future-cancelled? form / Futures
- Futures / Futures
G
- gen-class macro / Data hiding
- get-in form / Maps by example
- get form / Maps by example
- group-by form / Sequences by example
H
- hash-map form / Maps by example
- Hiccup / Hiccup
- HTML domain
- about / The HTML domain
- formative / Formative
- Hiccup / Hiccup
- Mustache / Mustache
- Clostache / Clostache
I
- if-let form / Syntax
- import form / Java inside Clojure
- inc form / Increment and decrement
- Integrated Development Environments (IDEs) / External DSLs
- interleave form / Sequences by example
- internal DSL
- about / Internal DSLs
- is macro
- using / Using the is macro
J
- Java-based abstractions
- creating / Creating Java-based abstractions
- Java objects, creating for manipulation / Making Java objects easier to manipulate
- values, retrieving / Retrieving values in a better way
- Java callable Clojure class
- creating / Making a Java-callable Clojure class
- class naming / Class naming
- Java class / Java inside Clojure
- Java JAR
- project, compiling to / Compiling your project to a Java JAR
K
- keep form / Sequences by example
- key/value collection type
- defining / Collection types
- KISS / KISS
- Korma / Database domains
- Korma Internal DSL / Database domains
L
- lazy sequence / Lazy sequences
- lein compile command / Leiningen
- lein deps *tree command / Leiningen
- lein deps command / The midje framework, The speclj framework
- Leiningen
- about / Leiningen and project management, Leiningen
- Github repository wiki page / Leiningen and project management
- installing / Installing Leiningen and starting a project
- project, starting with / Installing Leiningen and starting a project
- commands / Leiningen
- Leiningen commands
- lein install command / Leiningen
- lein jar command / Leiningen
- lein test command / Testing tdsl.core
- lein uberjar command / Leiningen
- let form / Syntax, Destructuring, Search testing
- line function / Image domains
- list* form / Lists by example
- lists, Clojure
- about / Lists
- creating / Lists by example
- load-config function / Reading the Twitter configuration, Using the are macro, Data hiding
- load-facts function / Using the fact macro
- load-string function / Adding logging features
- Long method / User details and multimethods
M
- *method form key / Formative
- *methods keyword / Data hiding
- -main function / Installing Leiningen and starting a project
- -my-fn function / Data hiding
- M-w command / Creating and editing CLJ files in Emacs
- M-x nrepl command / Installing Leiningen and starting a project
- Macro
- building / Making our most important macro
- deftwitter macro, building / Building the deftwitter macro
- twitter-> macro, building / Building the twitter-> macro
- macro
- creating / Macros
- mapcat form / Sequences by example
- map form / Sequences by example
- maps, Clojure
- about / Maps
- hash-map form, creating / Maps by example
- max-key form / Sequences by example
- max form / Greatest and least values
- merge-with form / Maps by example
- merge form / Maps by example
- metadata
- viewing / Metadata
- midje framework
- about / The midje framework
- fact macro, using / Using the fact macro
- min form / Greatest and least values
- mod form / Remainder and modulus
- music-as-data / Music-as-data
- Mustache / Mustache
N
- *ns* variable / Namespaces
- not-any? form / Collections by example
- not-empty form / Collections by example
- not-every? form / Collections by example
- not= form / Syntax
- nrepl.el Emacs extension
- about / The nrepl.el Emacs extension
- setup, testing / Testing the setup
- nth form / Sequences by example
O
- -only keyword / Namespaces
- OAuth configuration
- reading / Reading the OAuth configuration
- Twitter account, registering / Twitter account registration and application keys
- required dependencies, adding / Adding required dependencies
- project, creating / Creating the project and API configuration
- API configuration, creating / Creating the project and API configuration
- Twitter configuration, reading / Reading the Twitter configuration
- object
- comparing / Object comparison
- object-relational mapping (ORM) / Popular DSLs
- overtone / Overtone
P
- (p) function / Music-as-data
- (pattern) function / Music-as-data
- -post
- using / Syntax
- -pre
- using / Syntax
- parse form / Sequences by example
- partial form / Collections by example
- peek form / Vectors by example
- persistent! form / Transients
- processing / Image domains
- project
- Clojure, including in / Including Clojure or Java libraries in your project
- Java libraries, including in / Including Clojure or Java libraries in your project
- compiling, to Java JAR / Compiling your project to a Java JAR
- Promise / Promises
- pure functions / A pure function
Q
- query-> macro / Search macros and functions
- Quil
- about / Image domains
- GitHub project homepage / Image domains
- quot form / Division
R
- Raw SQL / Database domains
- Redis
- URL / Database domains
- reductions form / Sequences by example
- Refs / Refs
- reify forms / Java inside Clojure
- rem form / Remainder and modulus
- repeatedly form / Sequences by example
- repeat form / Sequences by example
- repeat function / Overtone
- REPL Buffer Commands
- C-RET / Testing the setup
- C-j / Testing the setup
- C-c C-u / Testing the setup
- C-c C-b / Testing the setup
- C-up or C-down / Testing the setup
- TAB / Testing the setup
- C-c C-d / Testing the setup
- C-c C-j / Testing the setup
- retweet bot
- making / The Retweet bot
- RT.var method / Java-wrapping your Clojure
- run-specs function / Using the should-contain macro
S
- + symbol / Addition and subtraction
- - symbol / Addition and subtraction
- search queries
- handling / Handling search queries
- tdsl.search namespace, adding / Adding the tdsl.search namespace
- macros, searching / Search macros and functions
- functions, searching / Search macros and functions
- send-off form / Agents
- send-tweet function / Tweet macros and functions
- seq? form / Sequences by example
- sequence form / Sequences by example
- sequential? form / Collections by example
- set! form / Variables
- set form / Sets by example
- sets, Clojure
- hash-set, creating / Sets by example
- setup option / Image domains
- should-contain macro
- using / Using the should-contain macro
- should= macro / Using the describe, it, should, and should= macros
- should macro / Using the describe, it, should, and should= macros
- show-agent function / Agents
- shutdown-agents form / Agents
- some form / Collections by example
- sorted-map form / Maps by example
- sorted-set form / Sets by example
- sorted? form / Collections by example
- spacing / Spacing and alignment
- speclj framework
- about / The speclj framework
- describe macro / Using the describe, it, should, and should= macros
- should macro / Using the describe, it, should, and should= macros
- should= macros / Using the describe, it, should, and should= macros
- should-contain macro, using / Using the should-contain macro
- split-lines function / Adding logging features
- star symbol (*) / Multiplication
- status-do macro / Tweet macros and functions
- subvec form / Vectors by example
- swap! form / Atoms
T
- *tweets* variable / Search testing
- TAB command / Testing the setup
- tdsl.core
- testing / Testing tdsl.core
- tdsl.tweet namespace
- adding / Adding the tdsl.tweet namespace
- test-dir / Java-wrapping your Clojure
- toggle-favorite function / Tweet macros and functions
- transient / Transients
- tree-seq form / Sequences by example
- tweet-> macro / Using the fact macro
- Tweets
- handling / Handling tweets, Tweet macros and functions
- twitter-> macro
- building / Building the twitter-> macro
- twitter4j.TwitterImpl class / Developing the final test
- Twitter DSL
- retweet bot / The Retweet bot
- event notifier / Creating an event notifier
- TwitterFactory class / Making our most important macro
U
- user-related features
- adding / Adding user-related features
- tdsl.user namespace, adding / Adding the tdsl.user namespace
- user macro / User macros and functions
- user-attr macro / User macros and functions
- user-details / User details and multimethods
- user-details multimethod / User details and multimethods
- logging features, adding / Adding logging features
V
- *validator option / Refs
- variables / Variables
- vec form / Collections by example, Vectors by example
W
- when-let form / Syntax
- when-not form / Syntax
- when form / Syntax
- with-bindings form / Variables
- with-meta form / Metadata
X
- x key / The nrepl.el Emacs extension
Y
- YAGNI / YAGNI
Z
- zipmap form / Maps by example