did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9781934356333

Programming Clojure

by
  • ISBN13:

    9781934356333

  • ISBN10:

    1934356336

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2009-06-03
  • Publisher: Oreilly & Associates Inc
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $32.95

Summary

Clojure is a dynamic language for the Java Virtual Machine, with a compelling combination of features: Clojure is elegant. Clojure's clean, careful design lets you write programs that get right to the essence of a problem, without a lot of clutter and ceremony. Clojure is Lisp reloaded. Clojure has the power inherent in Lisp, but is not constrained by the history of Lisp. Clojure is a functional language. Data structures are immutable, and functions tend to be side-effect free. This makes it easier to write correct programs, and to compose large programs from smaller ones. Clojure is concurrent. Rather than error-prone locking, Clojure provides software transactional memory. Clojure embraces Java. Calling from Clojure to Java is direct, and goes through no translation layer. Clojure is fast. Wherever you need it, you can get the exact same performance that you could get from hand-written Java code. Many other languages offer some of these features, but the combination of them all makes Clojure sparkle. Programming Clojure shows you why these features are so important, and how you can use Clojure to build powerful programs quickly.

Author Biography

Stuart Halloway is confounder and CEO of Relevance, Inc, where he promotes leading-edge technologies such as Ruby and Clojure as part of their agile development, consulting, and training services. Stuart has authored several other books including Component Development for the Jave Platform and Rails for Jave Developers.

Table of Contents

Forewordp. xi
Acknowledgmentsp. xiii
Prefacep. xv
Who This Book Is Forp. xvi
What Is in This Bookp. xvi
How to Read This Bookp. xvii
Notation Conventionsp. xix
Web Resources and Feedbackp. xx
Downloading Sample Codep. xxi
Getting Startedp. 1
Why Clojure?p. 1
Clojure Coding Quick Startp. 10
Exploring Clojure Librariesp. 17
Introducing Lancetp. 22
Wrapping Upp. 24
Exploring Clojurep. 25
Formsp. 25
Reader Macrosp. 35
Functionsp. 36
Vars, Bindings, and Namespacesp. 40
Flow Controlp. 47
Where's My for Loop?p. 50
Metadatap. 54
Wrapping Upp. 57
Working with Javap. 59
Calling Javap. 60
Optimizing for Performancep. 68
Creating and Compiling Java Classes in Clojurep. 74
Exception Handlingp. 81
Adding Ant Projects and Tasks to Lancetp. 85
Wrapping Upp. 90
Unifying Data with Sequencesp. 91
Everything Is a Sequencep. 92
Using the Sequence Libraryp. 97
Lazy and Infinite Sequencesp. 105
Clojure Makes Java Seq-ablep. 107
Calling Structure-Specific Functionsp. 113
Adding Properties to Lancet Tasksp. 121
Wrapping Upp. 126
Functional Programmingp. 127
Functional Programming Conceptsp. 128
How to Be Lazyp. 132
Lazier Than Lazyp. 140
Recursion Revisitedp. 147
Wrapping Upp. 156
Concurrencyp. 157
The Problem with Locksp. 158
Refs and Software Transactional Memoryp. 159
Use Atoms for Uncoordinated, Synchronous Updatesp. 166
Use Agents for Asynchronous Updatesp. 167
Managing Per-Thread State with Varsp. 172
A Clojure Snakep. 176
Making Lancet Targets Run Only Oncep. 187
Wrapping Upp. 190
Macrosp. 191
When to Use Macrosp. 191
Writing a Control Flow Macrop. 192
Making Macros Simplerp. 198
Taxonomy of Macrosp. 204
Making a Lancet DSLp. 213
Wrapping Upp. 223
Multimethodsp. 225
Living Without Multimethodsp. 226
Defining Multimethodsp. 228
Moving Beyond Simple Dispatchp. 230
Creating Ad Hoc Taxonomiesp. 232
When Should I Use Multimethods?p. 236
Adding Type Coercions to Lancetp. 240
Wrapping Upp. 245
Clojure in the Wildp. 247
Automating Testsp. 248
Data Accessp. 252
Web Developmentp. 257
Farewellp. 265
Editor Supportp. 267
Bibliographyp. 269
Indexp. 271
Table of Contents provided by Ingram. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program