{"product_id":"mastering-clojure-macros-write-cleaner-faster-smarter-code-9781941222225","title":"Mastering Clojure Macros: Write Cleaner, Faster, Smarter Code","description":"Level up your skills by taking advantage of Clojure's powerful macro system. Macros make hard things possible and normal things easy. They can be tricky to use, and this book will help you deftly navigate the terrain. You'll discover how to write straightforward code that avoids duplication and clarifies your intentions. You'll learn how and why to write macros. You'll learn to recognize situations when using a macro would (and wouldn't!) be helpful. And you'll use macros to remove unnecessary code and build new language features.\u003cbr\u003e \u003cbr\u003e Clojure offers some sharp tools in its toolbox, and one of the sharpest is its macro system. This book will help you write macros using Clojure, and more importantly, recognize when you should be using macros in the first place.\u003cbr\u003e \u003cbr\u003e The Lisp \"code-as-data\" philosophy gives tremendous advantages to macro authors and users. You can use macros to evaluate code in other contexts, move computations to compile time, and create beautiful API layers. You don't need to wait on the Clojure language itself to add new features, you'll learn how to implement even the lowest-level features as macros. You'll step through representative samples of how to use macros in production libraries and applications, find clear details on how to construct macros, and learn pointers to avoid obstacles that often trip up macro amateurs.\u003cbr\u003e \u003cbr\u003e Clojure macros are more straightforward to use than metaprogramming features in many other languages, but they're different enough from normal programming to present challenges of their own. \u003ci\u003eMastering Clojure Macros\u003c\/i\u003e examines some of these issues, along with alternatives to macros where they exist.\u003cbr\u003e \u003cbr\u003e By the time you finish this book, you'll be thinking like a macro professional.\u003cbr\u003e \u003cbr\u003e \u003cb\u003eWhat You Need: \u003c\/b\u003e The book examples have been developed under Clojure 1.6.0, although earlier and later versions of Clojure may work as well. You'll want to use Leiningen 2.x in order to follow along with the examples that use external projects.\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eAbout the Author\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eColin Jones is a software craftsman at 8th Light, where he builds web, mobile, and desktop systems for clients large and small. He's an active participant in the Clojure open source community, including work on the Clojure Koans, REPLy, Leiningen, and small contributions to Clojure itself.\u003c\/p\u003e\u003cbr\u003e","brand":"Pragmatic Bookshelf","offers":[{"title":"Default Title","offer_id":50365872177426,"sku":"9781941222225","price":16.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0831\/4771\/8930\/files\/img_453333d7-d752-4e8e-98d4-51704b20d9f3.jpg?v=1728465726","url":"https:\/\/surprise-castle.myshopify.com\/products\/mastering-clojure-macros-write-cleaner-faster-smarter-code-9781941222225","provider":"Surprise Castle","version":"1.0","type":"link"}