Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Programming Clojure, Third Editio n
About the Pragmatic Bookshelf
Table of Contents
Early praise for Programming Clojure, Third Edition
Acknowledgments
Introduction
Who This Book Is For
What’s in This Book
How to Read This Book
Notation Conventions
Web Resources and Feedback
Downloading Sample Code
Chapter 1: Getting Started
Simplicity and Power in Action
Clojure Coding Quick Start
Navigating Clojure Librar ies
Wrapping Up
Chapter 2: Exploring Clojure
Reading Clojure
Functions
Vars, Bindings, and Namespace s
Metadata
Calling Java
Comments
Flow Control
Where’s My for Loop?
Wrapping Up
Chapter 3: Unifying Data with Sequences
Everything Is a Sequence
Using the Sequence Library
Lazy and Infinite Sequences
Clojure Makes Java Seq-abl e
Calling Structure-Specif ic Functions
Wrapping Up
Chapter 4: Functional Programming
Functional Programmin g Concepts
How to Be Lazy
Lazier Than Lazy
Recursion Revisited
Eager Transformations
Wrapping Up
Chapter 5: Specifications
Defining Specs
Validating Data
Validating Functions
Generative Function Testing
Wrapping Up
Chapter 6: State and Concurrency
Concurrency, Parallelism, and L ocking
Refs and Software Trans actional Memory
Use Atoms for Uncoordinated, Synchronous Upda tes
Use Agents for Asynchronous Updates
Managing Per-Thread State with Vars
A Clojure Snake
Wrapping Up
Chapter 7: Protocols and Datatypes
Programming to Abstractions
Interfaces
Protocols
Datatypes
Records
reify
Wrapping Up
Chapter 8: Macros
When to Use Macros
Writing a Control Flow Mac ro
Making Macros Simpler
Taxonomy of Macros
Wrapping Up
Chapter 9: Multimethods
Living Without Multimetho ds
Defining Multimethods
Moving Beyond Simple Dispatch
Creating Ad Hoc Taxonomies
When Should I Use Multim ethods?
Wrapping Up
Chapter 10: Java Interop
Creating Java Objects in Clojure
Calling Clojure From Java
Exception Handling
Optimizing for Performance
A Real-World Example
Wrapping Up
Chapter 11: Building an Application
Getting Started
Developing the Game Loop
Representing Progress
Implementing Players
Interactive Play
Documenting and Testing Your Game
Farewell
Bibliography
You May Be Interested In…
← Prev
Back
Next →
← Prev
Back
Next →