Copyright
Brief Table of Contents
Table of Contents
Foreword
Preface
Acknowledgments
About This Book
1. Foundations
Chapter 1. Clojure philosophy
1.1. The Clojure way
1.1.1. Simplicity
1.1.2. Freedom to focus
1.1.3. Empowerment
1.1.4. Clarity
1.1.5. Consistency
1.2. Why a(nother) Lisp?
1.2.1. Beauty
1.2.2. Extreme flexibility
1.2.3. Code is data
1.3. Functional programming
1.3.1. A workable definition of functional programming
1.3.2. The implications of functional programming
1.4. Why Clojure isn’t especially object-oriented
1.4.1. Defining terms
1.4.2. Imperative “baked in”
1.4.3. Most of what OOP gives you, Clojure provides
1.5. Summary
Chapter 2. Drinking from the Clojure firehose
2.1. Scalars
2.1.1. Numbers
2.1.2. Integers
2.1.3. Floating-point numbers
2.1.4. Rationals
2.1.5. Symbols
2.1.6. Keywords
2.1.7. Strings
2.1.8. Characters
2.2. Putting things together: collections
2.2.1. Lists
2.2.2. Vectors
2.2.3. Maps
2.2.4. Sets
2.3. Making things happen: functions
2.3.1. Calling functions
2.3.2. Defining functions
2.3.3. Simplifying function definitions with def and defn
2.3.4. In-place functions with #()
2.4. Vars