Functional Images

Conal Elliott


There have been many libraries for generating images using functional programming, each based on its own fixed set of geometric primitives and combinators. In contrast, this chapter addresses the general notion of images, based on a very simple model: functions over continuous 2D space. Spatial transforms are mappings from 2D space to itself, and regions are just Boolean-valued images. This basis suffices for giving elegant expression to a wide range of images, as we illustrate through many examples. The library Pan embodying these ideas is freely available, and we hope to inspire others to join in the delightful search for new visual building blocks.


This chapter appeared in the book The Fun of Programming, published in 2003.

Here is a PDF version, and here are figures.

See also:

This work was done while the author was at Microsoft Research.


  author       = {Conal Elliott},
  title        = {Functional Images},
  url          = {},
  booktitle    = {The Fun of Programming},
  publisher    = {Palgrave},
  year         = 2003,
  series       = {``Cornerstones of Computing'' series},
  month        = mar