Posted on by & filed under Content - Highlights and Reviews, Programming & Development.

Clojure is a practical, general purpose, functional programming language that embraces its host platform, the JVM. Being a lisp with homo-iconic syntax, code is data and manipulated through macros to yield terse but meaningful abstractions. Clojure is a dynamic language for interactive development with optional type hints and type inference. It is designed for concurrency, providing fast persistent data structures, and offers a software transactional memory system to deal with mutable state. Clojure is a fresh language that builds upon time proven principles and ties together a coherent and productive environment for development, and is supported by a vibrant community.

Over the last couple of months, we have published a number of high quality posts focused on Clojure. They have been well-received, garnering a lot of attention from our readers. In case you missed them, here is a collection of these posts, with descriptions and links to other relevant material in the Safari Book’s Online catalog.

  • Light Table Workflow for Interactive Clojure Development illustrates interactive development with Clojure. Being able to evaluate snippets of code without building and running your entire project makes it faster to test code. Being able to modify code and data in a running system allows you to experiment with data and operations immediately. Clojure is an environment you can interact with through a Read Eval Print Loop (REPL). In this post we work through a basic example of interactive development using Leinigen and Light Table. Read more…
  • Scraping HTML Table Data in Clojure for Profit shows you how to use Clojure for data scraping. There is a vast amount of useful data on the Web in HTML tables. When you are ready to work with this data in your favorite programming language, you might may consider manually copying and pasting this data into files, then writing custom readers and so forth. Follow along in this post, to discover an easy way to pull the data into Clojure. Read more…
  • Event Sourcing in Clojure shows you how to use event sourcing in Clojure. Have you ever coded away on a great idea, and reached the point where you needed to store some data? It can be a buzzkill when you consider how the choices you are making in storage will affect your code, and how the storage target might change in the future. Should I design a database schema? Do I want to use a database? If my storage strategy changes, will I have to refactor? In this post I share with you why I default to event sourcing, and how simple it is to do in Clojure. Read more…
  • Clojure: Thinking in Hashmaps is all about using Clojure hashmaps. Hashmap transformation functions provide leverage from composability. So, using hashmaps to solve problems will change your way of thinking about problems. You will start thinking “in hashmaps” rather than “about hashmaps,” because they are tightly integrated into the language. Read more…
  • Two Simple Clojure Tricks with Values shows how having the core constructs of Clojure available as values allows some simplifying tricks that might not be obvious when coming from a mutable language. This post will cover some useful Clojure examples. Read more…
  • Clojure Data Uniformity explains how Clojure is a language made up of more than the sum of its parts. Clojure code can cut out the middleman and deal with the data itself. Since Clojure data comes in rather few shapes, the fundamental objects upon which code acts are uniform across domains, and hence most data manipulation functions can be provided in the core language. This leads to uniformity and simplicity in code bases. Read more…
  • Stock Simulation in Clojure demonstrates some features of Clojure by simulating the S&P 500 index. We will cover the following themes: random walk simulation, functional generalization, persistent data structures matter, and data exploration. Read more…
  • Sequence Abstractions in Clojure
    is a fast and loose discussion about some of the aspects of uniformity in Clojure and how they empower the language and programmer. It shows how uniformity of syntax enables the powerful meta-programming of lisps, how being comprised uniformly of expressions is critical for value-oriented programming, and finally, how recognizing and treating common patterns uniformly undergirds higher-order functions. Read more…
  • Clojure: Uniformly Sane covers loops from a functional programming perspective, pointing out the advantages of using this approach. Imperative style loops will be contrasted with sequence functions to illustrate why we prefer sequence abstractions over loops, and all examples will of course be in Clojure. Read more…

Resources in Safari Books Online

Here are some more resources in Safari Books Online to help you get started with programming with Clojure.

Clojure Inside Out is a video where you’ll not only learn how to tackle practical problems with this functional language, but you’ll learn how to think in Clojure—and why you should want to. Neal Ford (software architect and meme wrangler at ThoughWorks) and Stuart Halloway (CEO of Relevance, Inc.) show you what makes programming with Clojure swift, surgical, and accurate.
Clojure Programming, helps you learn the fundamentals of Clojure with examples relating it to the languages you know already—whether you’re focused on data modeling, concurrency and parallelism, web programming, statistics and data analysis, and more.
The Joy of Clojure goes beyond the syntax, and shows how to write fluent, idiomatic Clojure code. You will learn to approach programming challenges from a Functional perspective and master the Lisp techniques that make Clojure so elegant and efficient. This book will help you think about problems the “Clojure way,” and recognize when they simply need to change the way they program.
Practical Clojure is the first definitive reference for the Clojure language, providing both an introduction to functional programming in general and a more specific introduction to Clojure’s features. This book demonstrates the use of the language through examples, including features such as STM and immutability, which may be new to programmers coming from other languages.

Tags: Clojure, Data Uniformity, Event Sourcing, Hashmaps, Light Table Workflow, scraping, Sequence Abstractions, Stock Simulation, Tricks, Uniform, Values,

Comments are closed.