Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Programming Clojure
Table of Contents
What Readers Are Saying About Programming Clojure, Second Edition
Foreword for the Second Edition
Foreword for the First Edition
Acknowledgments
Preface
Who This Book Is For
What Is in This Book
How to Read This Book
Notation Conventions
Web Resources and Feedback
Downloading Sample Code
Chapter 1: Getting Started
1.1 Why Clojure?
1.2 Clojure Coding Quick Start
1.3 Exploring Clojure Libraries
1.4 Wrapping Up
Chapter 2: Exploring Clojure
2.1 Forms
2.2 Reader Macros
2.3 Functions
2.4 Vars, Bindings, and Namespaces
2.5 Calling Java
2.6 Flow Control
2.7 Where’s My for Loop?
2.8 Metadata
2.9 Wrapping Up
Chapter 3: Unifying Data with Sequences
3.1 Everything Is a Sequence
3.2 Using the Sequence Library
3.3 Lazy and Infinite Sequences
3.4 Clojure Makes Java Seq-able
3.5 Calling Structure-Specific Functions
3.6 Wrapping Up
Chapter 4: Functional Programming
4.1 Functional Programming Concepts
4.2 How to Be Lazy
4.3 Lazier Than Lazy
4.4 Recursion Revisited
4.5 Wrapping Up
Chapter 5: State
5.1 Concurrency, Parallelism, and Locking
5.2 Refs and Software Transactional Memory
5.3 Use Atoms for Uncoordinated, Synchronous Updates
5.4 Use Agents for Asynchronous Updates
5.5 Managing Per-Thread State with Vars
5.6 A Clojure Snake
5.7 Wrapping Up
Chapter 6: Protocols and Datatypes
6.1 Programming to Abstractions
6.2 Interfaces
6.3 Protocols
6.4 Datatypes
6.5 Records
6.6 reify
6.7 Wrapping Up
Chapter 7: Macros
7.1 When to Use Macros
7.2 Writing a Control Flow Macro
7.3 Making Macros Simpler
7.4 Taxonomy of Macros
7.5 Wrapping Up
Chapter 8: Multimethods
8.1 Living Without Multimethods
8.2 Defining Multimethods
8.3 Moving Beyond Simple Dispatch
8.4 Creating Ad Hoc Taxonomies
8.5 When Should I Use Multimethods?
8.6 Wrapping Up
Chapter 9: Java Down and Dirty
9.1 Exception Handling
9.2 Wrestling with the Integers
9.3 Optimizing for Performance
9.4 Creating Java Classes in Clojure
9.5 A Real-World Example
9.6 Wrapping Up
Chapter 10: Building an Application
10.1 Scoring a Clojurebreaker Game
10.2 Testing the Scorer
10.3 test.generative
10.4 Creating an Interface
10.5 Deploying Your Code
10.6 Farewell
Appendix 1: Editor Support
Appendix 2: Bibliography
You May Be Interested In…
← Prev
Back
Next →
← Prev
Back
Next →