A Lazy Sequence

20 Jan

Configuration Middleware

This article looks at how Ring middleware and dynamic binding presents a powerful tool for controlling configuration in Clojure web apps.

05 Feb

On iteration

How Python's view of iteration lead me to Clojure.

15 Feb

Monads: redux

Thoughts on the appropriateness of monads in Clojure.

01 Jun

A Brief Overview of the Clojure Web Stack

Ring is the foundation of web programming in Clojure. It has a broad ecosystem of libraries that fullfil many different roles in the web stack. This article introduces the fundamental concepts of Ring as well as four major libraries, and explains common idioms to help you get started quickly.

12 Feb

Ghosts in the Machine

Following on from looking at state monads in the context of Clojure, this article looks at variations that add different forms of state-m of non-determinism.

07 Feb

Start Parsing in Clojure: fnparse

Parser combinators are a powerful way of expressing complex parsers as first class operations in a language with first class functions. This tutorial introduces one such library, fnparse, for Clojure.

07 Feb

Parsers Generating Parsers

Following my introduction to fnparse, this article looks at how more common functional programming tools can be leveraged to make parsers that output new parsers.