Book Image

Clojure Programming Cookbook

Book Image

Clojure Programming Cookbook

Overview of this book

When it comes to learning and using a new language you need an effective guide to be by your side when things get rough. For Clojure developers, these recipes have everything you need to take on everything this language offers. This book is divided into three high impact sections. The first section gives you an introduction to live programming and best practices. We show you how to interact with your connections by manipulating, transforming, and merging collections. You’ll learn how to work with macros, protocols, multi-methods, and transducers. We’ll also teach you how to work with languages such as Java, and Scala. The next section deals with intermediate-level content and enhances your Clojure skills, here we’ll teach you concurrency programming with Clojure for high performance. We will provide you with advanced best practices, tips on Clojure programming, and show you how to work with Clojure while developing applications. In the final section you will learn how to test, deploy and analyze websocket behavior when your app is deployed in the cloud. Finally, we will take you through DevOps. Developing with Clojure has never been easier with these recipes by your side!
Table of Contents (16 chapters)
Clojure Programming Cookbook
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Preface

How to become lazy


As you may know, laziness is a simple concept. It is the act of only doing the minimum required, or to postpone work until the very last moment. This is a conscious choice, and therefore must be applied with care.

One of the reasons Clojure is enjoyable as a programming language is because it makes it easy to be lazy; or, in simple computing terms, it only evaluates the minimum needed, when it is needed. Nothing extra.

So, why would you want to be lazy, or in other words, build lazy sequences? Obviously, to avoid unnecessary computations. An example of this is, say, if you have a mathematical formula or a repeating function defining a list of elements and you only want to use some of those elements. This is when you want to write a lazy sequence, and not evaluate all the elements of the list up front but only those that will be accessed and used at runtime.

In this recipe, we will see first how to use lazy sequences in Clojure, as well as create our own.

Getting ready

For this...