Composing Fractals
📜 Abstract
This paper describes a simple but flexible family of Haskell programs for drawing pictures of fractals such as Mandelbrot and Julia sets. Its main goal is to showcase the elegance of a compositional approach to program construction, and the benefits of a clean separation between different aspects of program behavior. Aimed at readers with relatively little experience of functional programming, the paper can be used as a tutorial on functional programming, as an overview of the Mandelbrot set, or as a motivating example for studies in computability.
✨ Summary
The paper presents a compositional Haskell framework for generating and rendering Mandelbrot and Julia fractals. It separates fractal iteration, approximate escape testing, palette selection, grid construction, image sampling, and rendering into independently replaceable functions. The design relies on higher-order functions, polymorphism, lazy evaluation, list processing, and function composition; notably, the examples contain no recursive definitions. The framework supports both character-based output and graphical RGB rendering, while the same rendering pipeline can be reused for different fractal generators and display mechanisms. The paper also uses the Mandelbrot set to motivate approximation and computability: exact membership testing may fail to terminate, so bounded iteration produces a practical visualization-oriented approximation.
The documented scholarly influence appears limited but identifiable. Cambridge’s citation record lists two citing publications, including Martin and Curtis’s 2013 Fractal image compression. That paper describes a Haskell-based functional-programming course assignment on fractal image compression and explicitly cites Jones’s work, indicating continued use of fractal rendering and image generation as educational examples in functional programming. (cambridge.org) The available evidence does not establish a significant direct industry adoption or a broad technical research lineage stemming from this paper; its clearest continuing impact is as a pedagogical and illustrative example of compositional functional programming. The publication metadata and author information are confirmed by the Journal of Functional Programming record and the author’s publication list. (cambridge.org)