# All articles about functional programming

## 2018

## 2013

# Modeling union types using only functions

The lambda calculus is the basis for functional programming. Church's encodings in the untyped lambda calculus show an interesting pattern that parallels union types in languages like Haskell. Here I try to show how these discriminated union types can be implemented using only javascript functions.

## 2012

# Templates are functions

An article that looks at templates in web development in the context of *pure functions* and functional programming.

## 2010

# Monads: redux

Thoughts on the appropriateness of monads in Clojure.

# 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.

# Welcome to the machine

A close look at how the state monad is implemented and used in Clojure.